Hallo,
ich möchte für eine Bildergalerie ein Upload per HTML-Formular ermöglichen. Ein PHP-Programm soll die Bildabmessungen (falls zu groß) in eine vorgegebene Standardgröße umwandeln.
Wie im Web so oft zu finden, arbeite ich u.a. mit folgenden Funktionen:
move\_uploaded\_file ($tmp\_name, $bilddatei);
_(...Bildgrößenermittlung und Neuberechnung...)_
$altesBild = ImageCreateFromJPEG ($bilddatei);
$neuesBild = ImageCreateTrueColor ($neueBreite, $neueHoehe);
ImageCopyResampled ($neuesBild, $altesBild, ......);
ImageJPG ($neuesBild, $bilddatei, 75);
Nun habe ich ein Problem, dass das Programm bereits bei Bildern von ca 1.500.000 Bildpunkten nicht mehr funktioniert, weil der Server zu viel Speicher bei der Umwandlung der Bilddatei benötigt. Die Grenze in der php.ini liegt für memory_limit bei 8M, was ich auch nicht höher stellen möchte.
Gibt es eine andere Möglichkeit, Bildabmessungen serverseitig zu verkleinern, so dass der Arbeitsspeicher nicht so auslastet wird?
Nach Problemen der Anwenderinnen habe ich selbst mit kleinen Dateien (aber großen Abmessungen) experimentiert. Bei einem 1,8-Megapixel-Foto, dass in schlechter JPG-Qualität mit 125 KBytes gespeichert wurde, führt schon das
ImageCreateFromJPEG
zu einem Fehler
Allowed memory size of 8388608 bytes exhausted
in der error_log.
Danke für Alternativen
Wolfgang