Ошибка PHP-памяти при изменении размера PNG-изображения

У меня есть сценарий, который создает эскиз из загруженного изображения. он отлично работает с jpgs, но дает мне ошибку

Неустранимая ошибка: допустимый размер памяти 67108864 байт исчерпан (пытался выделить 26250000 байт)

когда я загружаю png-изображение.

Скрипт:

//create thumbnail; $modwidth and height are calculated in another part of the script //$original is the path to the full sized image $tn = imagecreatetruecolor($modwidth, $modheight); switch (strrchr($new_image_name,'.')) { case ".jpg": $image = imagecreatefromjpeg($original); break; case ".jpeg": $image = imagecreatefromjpeg($original); break; case ".png": $image = imagecreatefrompng($original); break; case ".gif": $image = imagecreatefromgif($original); break; } imagecopyresampled($tn, $image, 0, 0, $x_pos, $y_pos, $modwidth, $modheight, $width, $height); switch (strrchr($new_image_name,'.')) { case ".jpg": imagejpeg($tn, $target_path, 100); break; case ".jpeg": imagejpeg($tn, $target_path, 100); break; case ".png": imagepng($tn, $target_path, 0); break; case ".gif": imagegif($tn, $target_path); break; } 

Как я уже сказал, он отлично работает с JPG, а также с GIF. Ошибка памяти появляется только с PNG, и я использовал только изображение 1.2Mb.

Как я могу это решить? спасибо Патрику

Используйте ini_set('memory_limit', '256M'); перед скриптом.

Вам нужно увеличить значение параметра memory_limit в php.ini примерно так:

 memory_limit = 128M