Hallo!
Ich habe ein Problem mit einem Thumbnail-Script. Es liest aus einem Ordner alle Dateien mit .jpeg-Endung, macht aus diesen eine Vorschau (Thumbnail), und speichert sie unter dem Ordner .../galerien/GALERIENAME/thumbs/thumb.jpg ab. Die großen Bild-Dateien werden im Ordner .../galerien/GALERIENAME/images/ gespeichert!
Das Script funktioniert mit den vorgegebenen Bildern, aber nicht mit meinen eigenen. Ich erhalte folgende Fehlermeldungen:
-------------------------------------------
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in ...\Galerie\thumb_erstellen.php on line 11
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'bild1.jpg' is not a valid JPEG file in ...\Galerie\thumb_erstellen.php on line 11
Warning: imagecopy(): supplied argument is not a valid Image resource in ...\Galerie\thumb_erstellen.php on line 17
-------------------------------------------
Folgendes Script verwende ich:
<?php
function qThumb( $Bild, $ThumbKantenLaenge )
{
// Masse ermitteln
$OriginalBildInfo = getimagesize( $Bild );
$OriginalBildBreite = $OriginalBildInfo[0];
$OriginalBildHoehe = $OriginalBildInfo[1];
$OriginalKantenLaenge = $OriginalBildBreite < $OriginalBildHoehe ? $OriginalBildBreite : $OriginalBildHoehe;
// Temporaeres Bild vom Original erzeugen
$TempBild = imagecreatefromjpeg( $Bild ); <-- line 11
// Neues Bild erstellen
$NeuesBild = imagecreatetruecolor( $OriginalKantenLaenge, $OriginalKantenLaenge );
// Originalbild in neues Bild einfügen
if ($OriginalBildBreite > $OriginalBildHoehe)
{
imagecopy( $NeuesBild, $TempBild, 0, 0, round( $OriginalBildBreite-$OriginalKantenLaenge )/2, 0, $OriginalBildBreite, $OriginalBildHoehe );
}
else if ($OriginalBildBreite <= $OriginalBildHoehe )
{
imagecopy( $NeuesBild, $TempBild, 0, 0, 0, round( $OriginalBildHoehe-$OriginalKantenLaenge )/2, $OriginalBildBreite, $OriginalBildHoehe );
}
$Thumbnail = imagecreatetruecolor( $ThumbKantenLaenge, $ThumbKantenLaenge );
imagecopyresampled( $Thumbnail, $NeuesBild, 0, 0, 0, 0, $ThumbKantenLaenge, $ThumbKantenLaenge, $OriginalKantenLaenge, $OriginalKantenLaenge );
// Neues Bild ausgeben
imagejpeg( $Thumbnail, "../thumbs/".$Bild, 80 );
imagedestroy( $Thumbnail );
}
// Funktionsaufruf
$galerie_name = "galerie1";
chdir("galerien/".$galerie_name."/images");
foreach (glob( "*.jpeg" ) as $Bild)
{
qThumb( $Bild, 90 );
}
?>
Offensichtlich liegt es daran, dass das Script beim Unterscheid zwischen 'jpg' und 'jpeg' meckert.
Hat jemand eine Lösung, wie ich mehrere Formate außer nur 'jpeg' (also auch 'jpg', am besten noch 'bmp' und 'png') verarbeiten kann?
Danke für jede Hilfe!
Marcel