Вход для клиентовВход для клиентов  Блог О компании
Поиск:

Помощь » База знаний » Фото »

Что лучше: GD или Imagick?

GD и Imagick — это два независимых друг от друга расширения PHP для работы с графикой.

Основные функции работы с изображениями в WebAsyst Фото реализованы на основе использования этих расширений. Для работы скриптов WebAsyst Фото на веб-сервере (хостинге) должно поддерживаться хотя бы одно из этих расширений — либо GD, либо Imagick. В разделе «Настройки» сервиса WebAsyst Фото есть возможность выбора какое из расширений использовать для работы с изображениями.

Мы рекомендуем Imagick.

Оба расширения функционально схожи, однако Imagick дает более качественный результат во всех основных операциях:

  • создание эскизов из оригиналов изображений: Imagick быстрее примерно на 10%, дает более качественный результат (см. пример ниже), расход памяти в случае использования Imagick также значительно ниже, чем у GD.
  • применение фильтра резкости (sharpen): Imagick быстрее GD в несколько раз.
  • поворот и кадрирование («кроп») требуют выполнения операции создания эскизов, поэтому в производительности здесь Imagick также впереди.

Примеры созданных эскизов (обратите на качество мелких деталей в этих эскизах; это эскиз размером 256 пикселей, созданный WebAsyst Фото в случае использования GD и Imagick на одном и том же сервере; применение фильтра резкости включено):

 GDImagick

Замечание насчет GD:
Тесты показывают, что GD использует большие объемы памяти при работе с большими изображениями. Так, например, при ограничении на сервере memory_limit = 64M в настройках PHP GD успешно создает эскизы и применяет фильтр резкости sharpen для фотографий размером
не более 6 мегапикселей (3008х2000 пикселей). Для 10-мегапиксельных фотографий такого объема уже не хватает.
Если ограничение на вашем сервере меньше (например, 32М), то, скорее всего, вам потребуется уменьшать размеры фотографий на вашем компьютере до загрузки их на сервер с помощью клиентских программ.
Imagick использует меньшее количество памяти: при ограничении в 64М 10-мегапиксельные фотографии обрабатывались сервером без превышения ограничения по размеру памяти
.

Опыт показывает, что на большинстве хостинг-провайдеров поддерживается только расширение GD, а Imagick не поддерживается. Тем не менее, рекомендуем для WebAsyst Фото выбирать хостинг, поддерживающий расширение Imagick (рекомендуем хостинг WebAsyst).

При работе WebAsyst Фото как веб-сервиса на наших серверах мы используем Imagick.

Скрипт проверки GD и Imagick. Для того, чтобы проверить, поддерживаются ли расширения GD и Imagick вашим сервером, правильно ли срабатывают функции применения фильтра резкости, мы написали простой скрипт. Скачайте его (64 КБ), скопируйте в пустую папку на вашем сервере (например, в папку image-test) и запустить через браузер (например, http://www.yourdomain.ru/image-test/index.php). Этот скрипт определит, поддерживаются ли расширения GD и Imagick, и попробует применить фильтр резкости к демонстрационному изображению. 

 
 
Наш новый проект:

Фреймворк Webasyst

PHP-фреймворк для быстрого создания
веб-приложений для бизнеса.

www.webasyst.com