Der Martin: Arbeitsspeicherverbrauch von imagecreatefromjpeg()

Beitrag lesen

Hallo Marc,

Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 16000 bytes) in /irgend/ein/pfad/test.php on line 4
Das betreffende Ausgangsbild ist etwa 490KB groß.

die Dateigröße ist weniger interessant. Viel spannender sind die Abmessungen (Anzahl der Pixel), weil PHP das Bild zum Bearbeiten unkomprimiert im Arbeitsspeicher hält.

Nun meine Frage: Ist es normal, das ein 490KB großes Bild schon beim laden mir das Speicherlimit sprengt (das ja immerhin laut Fehlermeldung bei 5 MB liegt)?

Nein, eigentlich nicht, zumal das Speicherlimit aus deinem Beispiel nicht 5MB beträgt, sondern 40MB. Das reicht locker für ein 4000x3000-Bild in Truecolor!
Bist du sicher, dass der Speicherbedarf deines Scripts nicht andere Gründe hat? Versuchst du eventuell, das Bild mehrmals zu laden? Oder mehrere Bilder gleichzeitig? Anders kann ich mir das nämlich kaum vorstellen.

So long,
 Martin

--
In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
  (Dieter Nuhr, deutscher Kabarettist)