Почему при загрузке моего изображения происходит превышение порога разрешения 2900 x 2176? - PullRequest
0 голосов
/ 29 марта 2012

Размер изображения здесь не проблема, потому что мое изображение 800 Кб.

Загрузка моего изображения работает безупречно при любом разрешении ниже 2900 x 2176. При превышении этого порога оно не работает. Изображение не загружено. Почему это происходит?

Я добавлю код моего обработчика загрузки, на всякий случай, но не уверен, что это актуально.

Ошибка:

Неустранимая ошибка PHP: допустимый объем памяти 33554432 байта исчерпан (попытка выделить 8884 байта) в /path/imageResizer.php в строке 34 -

что относится к ...

if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); 

Ответы [ 3 ]

2 голосов
/ 29 марта 2012

Что за перерыв происходит? Любые ошибки выбрасываются?

Возможности:

  1. Вам не хватает памяти. Я предполагаю, что объект imageResizer и его методы виноваты. Каков ваш текущий предел памяти для php?

РЕДАКТИРОВАТЬ: Как сказал @deceze, вы можете использовать эту функцию, чтобы временно увеличить выделенную память:

ini_set('memory_limit', '64MB');
  1. imageResizer не может обрабатывать изображения с таким разрешением. Вы сами написали этот класс или это библиотека? Я не знаком с этим. Проверьте спецификации.
1 голос
/ 29 марта 2012

Размер изображения - это проблема. Файл может быть только 800 КБ, но изображение необходимо расширить в память, если вы хотите работать с ним. Так что вам нужно примерно

2900 × 2176 × color depth × no. of channels

байтов памяти для хранения каждого отдельного пикселя в памяти, чтобы сделать что-нибудь с изображением. Это может легко превысить обычный предел памяти PHP. Установите более высокий лимит, например:

ini_set('memory_limit', '500M');
0 голосов
/ 29 марта 2012

Возможно, вы достигли предела памяти. Вы должны получить сообщение об ошибке, сообщающее, что я настоятельно рекомендую вам отображать их во время разработки.

А пока вы можете таким образом добавить больше памяти для вашего imageReziser (если у вас есть право использовать функцию ini_set на вашем сервере)

ini_set('memory_limit', '256M');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...