Ruhighload team is looking for Technical Editor in Chief. Details and application.

Imagemagick является очень мощным инструментом обработки изображений для командной строки. Его часто называют Фотошопом для командной строки.

Наиболее часто imagemagick используется в Web'e для изменения размера картинки. Но как это делать правильно для PHP?

Для начала убедитесь, что imagemagick установлен:

sudo apt-get install imagemagick

Изменение размера картинки

В PHP есть модуль работы с imagemagick, но можно использовать и обычную версию командной строки и exec:

<?
exec('convert input.jpg -resize 300x300 output.jpg');
  • input.jpg — путь к оригиналу картинки
  • output.jpg — путь, куда будет сохранен результат

Вырезание квадратной картинки

Часто нужно не только уменьшить картинку, а еще и вырезать из нее квадратную область для соответствия верстке:

<?
exec('convert input.jpg -resize 50x50 -gravity Center -crop 50x50+0+0 output.jpg');

Оптимизация картинок

Часто картинки содержат в себе кучу дополнительной информации (мета-данные), которые не нужны, когда речь идет о картинках и фотках для сайта. Imagemagick умеет вырезать такой мусор:

<?
exec('convert input.jpg 50x50 -strip output.jpg');

Уровень качества и размер

Вы можете также попробовать изменить уровень сжатия для того, чтобы получить минимальный размер при приемлемом качестве:

<?
exec('convert input.jpg 50x50 -strip -quality 75 output.jpg');

-quality может принимать значения от 1 (худшее качество, размера почти нет) до 100 (лучшее качество, нереальный размер).

Список всех опций утилиты convert.