Problem mit Erstellung eines Thumbnails

ruNN0r

Erfahrenes Mitglied
hi,
ich lasse auf meinen Server ein Bild hochladen und möchte das es sofort in der auflösung geändert wird. einmal klein (200x***) und einmal 1280x***
beim 1280x*** bekomme ich eine Fehlermeldung.
Allowed memory size of 33554432 bytes exhausted (tried to allocate 5120 bytes) in

Ich habe das script nun schon in eine einzelne datei verlagert weil ich dachte das durch die größe der datei (2,5MB) der Speicher überlastet wird... war ein irrtum
hier der Quellcode:
PHP:
        $im1=imagecreatefromjpeg("../../upload/pics/temp/".$lastins.".jpg"); //erstellt ein Abbild im Speicher
        $size=getimagesize("../../upload/pics/temp/".$lastins.".jpg"); //ermittelt die Größe des Bildes

        $breite=$size[0]; //die Breite des Bildes
        $hoehe=$size[1]; //die Höhe des Bildes

        if($breite>$hoehe){
          $breite_neu=1280; //die breite des Thumbnails
          $hoehe_neu=1280*$hoehe/$breite; //die Höhe des Thumbnails
        }else{
          $breite_neu=1280*$breite/$hoehe; //die breite des Thumbnails
          $hoehe_neu=1280; //die Höhe des Thumbnails
        }


        $im2=imagecreatetruecolor($breite_neu,$hoehe_neu); //Thumbnail im Speicher erstellen

        imagecopyresampled($im2,$im1,0,0,0,0,$breite_neu,$hoehe_neu,$breite,$hoehe);  //Bild in Thumbnail kopieren

        imagejpeg($im2,"../../upload/pics/".$lastins.".jpg"); //Thumbnail speichern

        imagedestroy($im1); //Speicherabbild wieder löschen
        imagedestroy($im2); //Speicherabbild wieder löschen

        unlink("../../upload/pics/temp/".$lastins.".jpg");

Vielen dank schon mal im vorraus.
 
PHP kann nicht mit komprimierten Bildern arbeiten und formt diese deshalb um, in ein Bitmap Format, also ohne jegliche Komprimierung. Dadurch werden die Bilder extrem groß.

Die Fehlermeldung weist darauf hin, dass der Arbeitsspeicher nicht ausreicht um die BIldbearbeitung durchzuführen.

PHP möchte also ein höheres memory_limit haben.
 
erstmal vielen Dank für die Antwort. Das mit dem Limit weiß ich schon und habe den schon auf das max (32M) ausgeweitet...
 
Ja, das sieht man ja oben in der Fehlermeldung.
Aber wie du an der Fehlermeldung siehst, reicht das nicht für eine Thumbnailgenerierung in der Größenordnung.

Entweder memory_limit erhöhen oder auf andere Tools ausweichen, wie Imagick auf der Konsole o. ä.
 
In welcher Zeile bricht er genau ab? Falls er bei dem Aufruf von [phpf]imagejpeg[/phpf] abbricht, könntest du den Aufruf von [phpf]imagedestroy[/phpf] auf die Bildressource $im1 hochholen.

Sollte er bereits davor abbrechen, sieht das eher schlecht aus.
 
Zurück