Введение в Imagick

Этой статьей я начну цикл постов, переводных и собственного сочинения, об отличной, на мой взгляд, библиотеке работы с изображениями для PHP — Imagick. Библиотека эта не самостоятельная, а работает с помощью вызовов сторонней программы ImageMagick. Однако справляется с поставляемыми задачами с лихвой.

В стандартную поставку php уже входит библиотека для работы с изображениями — GD. И GD и Imagick функционально схожи, однако последний дает более качественный результат при выполнении основных операции, например, создание эскизов изображенийс помощью Imagick быстрее примерно на 10%, а также дает более качественный результат, расход оперативной памяти при использовании Imagick также значительно ниже.
Минус Imagick разве что в том, что далеко не на всех шаред хостингах можно его найти. Ну а на своем сервере эта библиотека — лучший выбор для работы с изображениями.
Итак, по сравнению с GD Imagick явно лидирует. Идем дальше — в чем преимущество использования библиотеки, которая работает с ImageMagick перед непосредственной работой с ImageMagick?
Некоторые поступают просто — работают напрямую с программой, используя команду exec(). Один из авторов расширения провел тесты, сравнивающие производительность с использованием Imagick и без него.
Для проверки использовались такие коды:

  1. <?php
  2. foreach ( new imagick( glob( "/var/www/testimages/new/im/*.jpg" ) )  as $image )
  3. {
  4.     $image->thumbnailImage( 200, null ); // с использованием Imagick
  5.     $image->writeImage( "/tmp/th/" . basename( $image->getImageFilename() ) );
  6.     $image->removeImage();
  7. }

и

  1. <?php
  2.  
  3. foreach ( glob( "/var/www/testimages/new/im/*.jpg" ) as $image )
  4. { // обращение напрямую к ImageMagick
  5.     exec( "convert -thumbnail 200 ${image} /tmp/th/". basename( $image ) );
  6. }

Выполнение первого скрипта заняло 1.3 секунды, второго — 2.7 секунд.
Разница на лицо. К сожалению похожих операций с GD не проводилось, но проигрыш даже второму способу очевиден.
Итак, серия поучительно-образовательных постов о библиотеке Imagick открыта. Заходи, читайте, пользуйтесь!

Запись опубликована в рубрике PHP & MySQL с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">