Dietmar: GDlib: Schwarze Bilder bei Thumbnailerstellung

Tachchen!

Also, ich habe ein kleines Problem bei der Verwendung meiner GDlib: Es kommt vereinzelt dazu, dass die zu erstellenen Thumbnails schwarz werden. Hängt das damit zusammen, dass ich die Bilder in einer foreach erzeugen lasse? Muss ich also Speicher des Servers freigeben? Und wie kann ich das tun?

foreach ($bild as $dateiname)
{

$groesse=getimagesize("$verz/$dateiname");
$breite=$groesse[0];
$hoehe=$groesse[1];
$typ=$groesse[2];
$hoehe2=$hoehe*100/$breite;
$image1 = imagecreatetruecolor(100,$hoehe2);
ImageCopyResampled($image1, $image, 0,0, 0,0,100,$hoehe2,$breite,$hoehe);
imagejpeg($image1,"$verz/thumbs/$dateiname",50);

}

mfg,
Dietmar

  1. Hi,

    $image scheint undefiniert. Du musst ja erstmal die Bilddaten des großen Bildes auslesen:
    Bei JPG mit

    $image = ImageLoadFromJPEG("Pfad");

    Dann kopierst du den Inhalt resampled in $image1.

    Christian

    Tachchen!

    Also, ich habe ein kleines Problem bei der Verwendung meiner GDlib: Es kommt vereinzelt dazu, dass die zu erstellenen Thumbnails schwarz werden. Hängt das damit zusammen, dass ich die Bilder in einer foreach erzeugen lasse? Muss ich also Speicher des Servers freigeben? Und wie kann ich das tun?

    foreach ($bild as $dateiname)
    {

    $groesse=getimagesize("$verz/$dateiname");
    $breite=$groesse[0];
    $hoehe=$groesse[1];
    $typ=$groesse[2];
    $hoehe2=$hoehe*100/$breite;
    $image1 = imagecreatetruecolor(100,$hoehe2);
    ImageCopyResampled($image1, $image, 0,0, 0,0,100,$hoehe2,$breite,$hoehe);
    imagejpeg($image1,"$verz/thumbs/$dateiname",50);

    }

    mfg,
    Dietmar

  2. Hi !

    Beachte vor allem, dass die Funktion "imagecreatetruecolor" die GD Bibliothek in der Version 2.0.1 oder höher benötigt. Auf meinem Server wurden die Bilder daher auch schwarz. Besser ist "imagecreate" aber dementsprechend sieht das ganze dann auch aus.

    Gleiches gilt übrigens für "ImageCopyResampled" --> "ImageCopyResized"!

    Gruß Christian