Как стать автором
Обновить

Комментарии 14

По соображениям производительности, мы отказались от готовых реализаций ImageMagick в php и сделали обертку для консольной утилиты:
+ кушает меньше памяти
+ быстрее
+ нет необходимости ставить библиотеку
+ прост в использовании (работа через стек команд, некоторые команды объединяются, например draw, и выполняются за один проход одновременно с resize).
— невозможно реализовать все методы
— нет низкоуровневого доступа к bitmap
— необходимо наличие консольной утилиты на сервере
Вы уверены, что в итоге это все сожрет меньше памяти, учитывая реализацию на разных платформах может порождаться новый процесс (ой как не быстро) или осуществлять загрузку в текущий процесс. Это никогда не будет быстрее, чем обратиться к функции, которая уже загружена в память.

Опять же в целях безопасности много где прикрыта возможность выполнять консольные команды.
Вы наверное никогда не использовали его пакетно, отресайзите сотку gif анимашек в цикле через класс Imagick и через запуск консольной команды convert и сравните, результаты пхп класса будут неприемлимы по времени.
чем Imagick не обертка для imageMagick?
«обертку для консольной утилиты» и «нет необходимости ставить библиотеку» — это не на пхп ли вы реализовали ее?
Если да, то в производительности выигрыш весьма сомнителен, т.к. вызов внешних программ из пхп гораздо накладнее.
Imagick это обработка изображения непосредственно в памяти php, со всеми вытекающими. Консольная обертка это просто класс генерирующий команды для консоли.

Временем вызова внешней программы можно пренебречь, когда вам необходимо обрабатывать весомые изображения (12+ mb), узкое место здесь именно обработка.

Для больших изображений да. Здесь вы правы.
Прошу прощения за предыдущий мой комментарий, это был ответ для Lachezis.
Хочу пояснить, что в статье я описал проблему, которая сейчас существует и один вариант ее решения. Я не пытался убедить всех, что Imagick это хорошо или плохо. Пусть каждый решит это для себя сам.
Я не пытался убедить вас, что Imagick плохое решение, просто указал вам что есть и другие пути решения данной проблемы (хотя и в другом окружении).
А что вы там делали, с чем GD не справился? Просто любопытно.
Лучше расскажите с чем GD нормально справляется? Jpeg замыленый, и занимает при этом много места, png и gif лучше и не пробовать обрабатывать
Пример: открываем файл png, ничего с ним не делаем, сохраняем в jpeg.
Слева — Imagemagick, 13 КБ.
Справа — GD 21 КБ.

Как легко установить imagick на последний денвер?
Установить Linux)))
А если серьезно, то первым делом скачать и установить ImageMagick. Вторым делом найти и установить как расширение php файл php_imagick.dll Однако нужно иметь в виду, что официальной версии для windows нет. Посмотрите по вашему вопросу здесь.
Я автор статьи на вазелин.орг.юа. Тут добавлю, что самое сложное — найти нужную дллку.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории