Hallo,
ich habe ein Problem beim erstellen von Thumbnails.
Aus irgendeinem Grund erhalte ich wahnsinnig schlechte Thumbs!
Die maximale Höhe und Breite ist auf 300px beschränkt.
Kompression ist 100
Die Vorlage ist ein JPG.
Ausmaße:
Höhe: 1600px
Breite: 1200px
Das Bild:
http://img242.imageshack.us/img242/2320/thumbby5.jpg
Der Code:
Vielleicht weiß ja jemand weiter, ich bin ratlos
Danke
Piremilok
ich habe ein Problem beim erstellen von Thumbnails.
Aus irgendeinem Grund erhalte ich wahnsinnig schlechte Thumbs!
Die maximale Höhe und Breite ist auf 300px beschränkt.
Kompression ist 100
Die Vorlage ist ein JPG.
Ausmaße:
Höhe: 1600px
Breite: 1200px
Das Bild:
http://img242.imageshack.us/img242/2320/thumbby5.jpg
Der Code:
PHP-Code:
<?php
//Bildausmaße ermitteln
$picsize = getimagesize($sourcefile);
//original Bildhöhe und Bildbreite speichern
$source_x = $picsize[0];
$source_y = $picsize[1];
//Breite überprüfen und evtl. anpassen
if($source_x == $this->breite || $this->breite == 0){
$dest_x = $source_x;
}
elseif($source_x > $this->breite) {
$dest_x = $this->breite;
$dest_y = ceil($source_y * $dest_x / $source_x);
}
//Höhe überprüfen und evtl. anpassen
if($dest_y > $this->hoehe){
$old_y = $dest_y;
$dest_y = $this->hoehe;
//Breite an die neue Höhe anpassen
$dest_x = ceil($dest_x * $dest_y / $old_y);
}
//Dateiendung ermitteln
$fileext = strtolower(end(explode('.', $destfile)));
//Über Dateiendung Bildformat ermitteln und Bild laden
SWITCH ($fileext) {
CASE 'jpg': $img_source = imageCreateFromJPEG($sourcefile); break;
CASE 'gif': $img_source = imageCreateFromGIF($sourcefile); break;
CASE 'bmp': $img_source = imageCreateFromWBMP($sourcefile); break;
CASE 'png': $img_source = imageCreateFromPNG($sourcefile); break;
}
//Neues leeres Bild mit neuen Größen erstellen
$img_dest = imagecreatetruecolor($dest_x, $dest_y);
//Altes Bild in neues Bild einfügen (Größe wird geändert)
imagecopyresampled($img_dest,$img_source,0,0,0,0,$dest_x,$dest_y,$source_x,$source_y);
//Thumbnail speichern
imagejpeg($img_dest,$destfile,100);
//Speicher wieder freigeben
@imagedestroy($img_source);
@imagedestroy($img_dest);
?>
Vielleicht weiß ja jemand weiter, ich bin ratlos
Danke
Piremilok
Kommentar