[PHP] Bildgröße ändern

dr-chiller

Cadet 4th Year
Registriert
Okt. 2004
Beiträge
98
Hi,

ich weiss das ist mein erster Post hier und dann direkt ne Frage, bitte entschuldigt das.

Ich habe bis jetzt noch keine Lösung gefunden. Hier mein problem.

Ich suche ein Script welches die Bildgröße erkennt und wenn sie über eine bestimmte größe geht, das das Bild dann "verkleinert" werden soll.

Im simpler ausdrucksweise

if bild < 800*600 dann lass so
if bild > 800*600 dann mach 800*600

Das Bild kann aber in wirklichkeit so bleiben es geht mir nur um die Attribute height und width, das Bild bleibt also so groß wie es ist, wird halt nur verkleinert dargestellt.

Wenn das Bild aber z.b 640*480 ist dann soll das bild auch 640*480 bleiben und nicht auf 800*600 vergrößert werden.

Ich hoffe ihr könnt mir helfen.

mfg

dr-chiller

P.S: Ich bin absoluter Php N00b.
 
Wenn das Bild unangetastet bleiben soll und nur die HTML-Attribute geändert werden soll, dann verwende die Funktion getimagesize(), ermittle die Breite und Höhe, wenn eines davon größer ist, auf die entsprechende Größe runterrechnen und einfach im HTML-Attribut ausgeben.
 
erstmal danke für die Antworten. Aber ich kenne mich leider zu 0% mit php aus. Könnte jemand vielleicht den code posten ?
 
Suchst du dieses hier?
PHP:
 <?php
 
$size=getimagesize("dateien/$file_name");
$breite=$size[0];
$hoehe=$size[1];
 
if($breite > 800)
{
	$neueBreite=800;
	$neueHoehe=intval($hoehe*$neueBreite/$breite); 
	$bildgroesse_veraendern = true;
}
if($hoehe > 600)
{
	$neueHoehe=600;
	$neueBreite=intval($breite*$neueHoehe/$hoehe); 
	$bildgroesse_veraendern = true;
}
if(($size[2]==1) && $bildgroesse_veraendern) {
// GIF
	$altesBild=ImageCreateFromGIF("dateien/$file_name");
	$neuesBild=ImageCreate($neueBreite,$neueHoehe);
	ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
	ImageGIF($neuesBild, "dateien/thumb_$file_name");
}
elseif(($size[2]==2) && $bildgroesse_veraendern) {
// JPG
	$altesBild=ImageCreateFromJPEG("dateien/$file_name");
	$neuesBild=ImageCreate($neueBreite,$neueHoehe);
	ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
	ImageJPEG($neuesBild, "dateien/thumb_$file_name");
}
elseif(($size[2]==3) && $bildgroesse_veraendern) {
// PNG
	$altesBild=ImageCreateFromPNG("dateien/$file_name");
	$neuesBild=ImageCreate($neueBreite,$neueHoehe);
	ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
	ImagePNG($neuesBild, "dateien/thumb_$file_name");
}
?>
 
ich weiss nicht, wie wende ich das denn an ? Muss es dann so aussehen

<img src=".." width="$breite" height="$hoehe"> ???
 
PHP:
<? echo '<img src="dateien/'.$file_name.'" width="'.$breite.'" height="'.$hoehe.'">'; ?>

Bitte beachte, dass die GD Library auch auf deinem Server installiert sein muss... es ist nicht immer standard.
 
wird denn mit dem script nicht ein echtes Thumbnail erzeugt ? Ich will ja das es nur ein Bild bleibt, und einfach nur automatisch die Attribute width und height geändert werden !
 
du hast recht so werden nur thumbnails erstellt, du brauchst sowas:

PHP:
<?php

$size = GetImageSize (wo-dein-bild-ist);
$width  = $size[0];
$height = $size[1];

if (($width > 800) and ($height > 600))
{
  if ($width > $height)
  {
    $attrib = ' width="800"';
  }
  else
  {
    $attrib = ' height="600"';
  }
}
elseif ($width > 800 and $height <= 600)
{
  $attrib = ' width="800"';
}
elseif ($height > 600 and $width <= 800)
{
  $attrib = ' height="600"';
}
else
{
  $attrib = ' '.$size[3];
}


?>

Die Ausgabe sieht dann so aus.

PHP:
<img  src="dein-bild"  <?php echo "$attrib"; > >

Hoffe ich konnte dir helfen. Bei weiteren Fragen zu PHP einfach mich mal in ICQ anschreiben.

mfg

hemorieder
 
Dankeeeee ! Es Geht !!!!! Big Thx !!!! Hammer !!! Ich Liebe Dieses Forum !!!! Juhu !
 
Zurück
Oben