Dieses Script soll aus einer Tabelle sich die Ordner raussuchen und darin zu allen Bildern ein Thumbnail erstellen. Es funktioniert auch, allerdings bricht es nach kurzer Zeit ohne Fehlermeldung ab. Bei 300 - 400kB Bildern nach etwa 6 Bildern, bei Bildgrößen von ca. 100kB nach etwa 15 Bildern.
Auch ein error_reporting(E_ALL) brachte keinen Hinweis.
Hat jemand eine Idee, woran es liegt bzw. was geändert werden muß? Danke schonmal im Voraus.
Auch ein error_reporting(E_ALL) brachte keinen Hinweis.
PHP-Code:
function resizeImage($imgname, $pfad){
$quality = 85;
$maxb = 200;
$maxh = 200;
$bildpfad = $pfad.'/'.$imgname;
$bild = imagecreatefromjpeg($bildpfad);
$alt_breite = imagesx($bild);
$alt_hoehe = imagesy($bild);
if ($alt_breite <= $alt_hoehe){
$neu_hoehe = $maxh;
$neu_breite = round(($neu_hoehe / $alt_hoehe) * $alt_breite);
if ($neu_breite > $maxb){
$faktor = $neu_breite / $maxb;
$neu_breite = $maxb;
$neu_hoehe = $neu_hoehe * $faktor;
}
}else{
$neu_breite = $maxb;
$neu_hoehe = round(($neu_breite / $alt_breite) * $alt_hoehe);
if ($neu_hoehe > $maxh){
$faktor = $neu_hoehe / $maxh;
$neu_hoehe = $maxh;
$neu_breite = $neu_breite * $faktor;
}
}
$breite_of = $neu_breite - 14;
$hoehe_of = $neu_hoehe - 14;
$file_name_dest = "$pfad/thumbs/$imgname";
$thumb = imagecreatetruecolor($neu_breite, $neu_hoehe);
$farbe_body=imagecolorallocate($thumb,255,255,255);
imagefill($thumb,0,0,$farbe_body);
imageantialias($thumb, TRUE);
imagecopyresampled($thumb, $bild, 7, 7, 0, 0, $breite_of, $hoehe_of, $alt_breite, $alt_hoehe);
imagejpeg($thumb,$file_name_dest, $quality);
imagedestroy($thumb);
return TRUE;
}
...
while($zeile=mysql_fetch_array($erg)){
$ordner = $zeile[ordner];
$pfad = "files/".$ordner;
mkdir("files/$ordner/thumbs", 0777);
if ($handle = @opendir($pfad)){
while ($file = readdir($handle)){
if (is_file($pfad.'/'.$file)){
$ret = resizeImage($file, $pfad);
if (!$ret)
exit ('Das Vorschaubild konnte nicht erstellt werden!');
}
}
closedir($handle);
}
}
Kommentar