Speicher voll O.o

Stelo

Erfahrenes Mitglied
In meiner Galerie kommt folgende Fehlmerldung, anch dem ich mir einige Bilder angesehen hab:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2288 bytes) in /usr/export/www/vhosts/funnetwork/hosting/geilezeit/bild.php on line 51

Was genau hat das denn zu bedeuten? Und wie kann ich dieses Problem beheben?
 
War bei mir auch mal so, jedoch beim Upload. Versuch mal, nach jedem Foto die Variable mit unset() wieder zu löschen, damit könnte evtl. schon der Speicher wieder freigegeben und das Problem gelöst sein. Jedenfalls dann, wenn du thumbnails generierst ;-)
Sollte das nicht klappen, zeig uns mal deinen Quellcode.
 
Also ich habs mal mit unset versucht, aber vllt. hab ichs auch falsch eingefügt O.o
Eine gewisse Anzalh von Bildern kann ich angucken, doch vllt. nach 20 Bildern kommt diese Fehlrmeldung. Hier mal ein Teil des Codes, vllt. ist das unset ja auch an der falschen Stelle! ^^

PHP:
$Grafikdatei = "upload/$name";

$Bilddaten = getimagesize($Grafikdatei);

$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];

if ($OriginalBreite < $OriginalHoehe) {
$ThumbnailBreite = 300; }
else {$ThumbnailBreite = 500; }

if($OriginalBreite < $ThumbnailBreite)
{
    $ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

if($Bilddaten[2] == 1)
{
    $Originalgrafik = ImageCreateFromGIF($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, 

$OriginalHoehe);
    ImageGIF($Thumbnailgrafik, "thumb_".$Grafikdatei);
}
elseif($Bilddaten[2] == 2)
{
    $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, 

$OriginalHoehe);
    ImageJPEG($Thumbnailgrafik, $Grafikdatei);
}
elseif($Bilddaten[2] == 3)
{
    $Originalgrafik = ImageCreateFromPNG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, 

$OriginalHoehe);
    ImagePNG($Thumbnailgrafik, "thumb_".$Grafikdatei);
}
echo"<img src=\"
    $Grafikdatei
    \">";

unset($Thumbnailgrafik);
unset($Orginalgrafik);
unset($Grafikdatei);
 
Hmm ... mir ist gerade aufgefallen, dass Fehlermeldung nur erscheint, wenn das Bild größer als 1 MB ist O.o
 
Das Problem ist halt, dass das Bild komprimiert 1MB groß ist (sprich als JPG, GIF o. ä.)

Öffne es mal in Paint, speicher es als BMP ab und dann sieht du die unkomprimierte Größe. Und mit dieser Dateigröße muss PHP eben arbeiten, von daher wird da relativ schnell viel Speicher verbraucht. Du erstellst das Bild in Originalgröße, dann erstellst du das Thumbnail.
Das zieht eben auch alles Speicher.
 
Zurück