PHP кадрирование действительно большое изображение - PullRequest
5 голосов
/ 08 марта 2012

Этот вопрос не о коде для обрезки изображений.

Я знаю, как это работает.

Это просто вопрос об обработке очень больших изображений с помощью PHP библиотеки изображений (GD или ImageMagick).?).

Например, я беру действительно большой файл (5000 x 35000 пикселей), 8-битный цвет 3, канал памяти, необходимый только для загрузки этого файла, составляет приблизительно.50 Мо!

Теперь я хочу сделать это действие (только для примера):


  • Я хочу получить область в правом нижнем углу, с размером (600x 600) pixel.
  • на этой части изображения, я хочу добавить графический тег (об этом я не беспокоюсь, я знаю)
  • и после этого я хочу записать эту часть в исходный файл.

Я думаю, рабочий процесс должен быть таким:

  1. чтение оригинальных байтов из большой картинки (только для получения файла de part)

  2. работа над файлом детали

  3. запись детали на большом изображении.

Все с небольшимобъем памяти.

Можете ли вы помочь мне написать этот код (или ссылку на ресурсы)

большое спасибо.

Ответы [ 3 ]

0 голосов
/ 11 мая 2014

Попробуйте добавить это до изменения размера:

  ini_set('memory_limit', '128M');
0 голосов
/ 08 января 2015

PHP не предназначен для обработки чисел.

Редактирование изображений включает в себя множество обработок чисел.

Любой обходной путь должен быть встроенным, чтобы увидеть существенную разницу в производительности.Используйте ImageMagick, если можете.

0 голосов
/ 08 марта 2012

Я бы посмотрел на что-то вроде http://phpthumb.sourceforge.net/

Я никогда не использовал его для изображений такого большого размера, но на домашней странице написано: «ImageMagick (если доступно) может быть вызван для создания миниатюр для исходных изображений, размер которых превышает ограничение памяти PHP, что позволяет GD-only thumbnailer или для форматов изображений, которые не поддерживает GD. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...