mir ist noch ein Problem mit den Thumbnails aufgefallen:
es kann unter umständen sein, das wenn man die Grenzen maxhoehe bzw. maxbreite eingegeben hat, das diese gar nicht eingehalten werden
wenn ein bild z. bsp fast quadratisch ist wird dann entweder die höhe oder die breite nicht mehr eingehalten. Ich bin daher über den AspectRatio
(Seitenverhältnis) gegangen um das Proiblem zu lösen
ausserdem habe die Variable bildQualität (vom Thumbnail) eingeführt,
40 ist, finde ich: unter aller Sau. und die bildchen werden vielleicht 30% (datei)Größer
Code: Alles auswählen
//thumnails erzeugen
if(!isset($bildQualitaet)) $bildQualitaet=40;
if (!$fehler) {
foreach ($bild as $einzelbild) {
$im = imagecreatefromjpeg($cfg['path']['frontend'].$upldir.$album_dir."/" .$einzelbild);
list($src_width, $src_height) = getimagesize($cfg['path']['frontend'].$upldir.$album_dir."/" .$einzelbild);
$sourceAR = $src_width/$src_height;
$targetAR = $max_breite/$max_hoehe;
if($sourceAR<=$targetAR){//bild ist schmaler als Ziel AspektRatio
$new_image_height = $max_hoehe;
$new_image_width = ceil($max_hoehe*$sourceAR);
}else{ //bild ist breiter als Ziel AspektRatio
$new_image_width = $max_breite;
$new_image_height = ceil($max_breite/$sourceAR);
}
$new_image = imagecreatetruecolor($new_image_width, $new_image_height);
imagecopyresampled($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
if (!imagejpeg($new_image, $thm_new_dir."/".$einzelbild, $bildQualitaet)) {
$fehler = "Konnte Thumb nicht erstellen: ".$thm_new_dir."/".$einzelbild."<br>";
} else {
$dbA_entry = "INSERT INTO ".$db_fotos." ".
"(filename, album_id, album_dir, idart) ".
"VALUES ('$einzelbild', '$album_id', '$album_dir', '$idart')";
if (!$db->query($dbA_entry)) { $fehler = "Beim Datenbankeintrag traten Fehler auf: ".$sql_entry; }
}
}//end foreach
}
viel spass damit