8 авг. 2009 г.

Волшебство ImageMagick

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

Дано: ImageMagick 6.5.4-9
Решение:

Поглядывал в сторону следующего решения ...

mogrify -resize 150 *.jpg
mogrify -resize x75 *.jpg


но понимал, "костылявость" оного. На счет [mogrify -resize 800x600 *.jpeg] тут подводный камень в том что первоначальные изо размера разного и неожиданным результат был эксперимента ...

Не шибко раздумывая сел медитировать над манами и ховтушами, и оказывается не зря, и вообще почитывать маны и ховтуки всегда полезно! ;)

и вот что мы имеем:

mogrify -resize 150x75^ -gravity center -extent 150x75 -quality 100 +profile "*" *.jpg




  • resize 150x75^ самое интересное тут именно ^, это не ошибка и опечатка, это изменение размера исходника с сохранением пропорций, да так, чтобы она поместилась в прямоугольник 150x75, даже если не укладывается в пропорциях обрезает, равномерно отрезав по краям (по ширине/высоте) в зависимости от пропорций исходной картинки. (^
  • Minimum values of width and height given, aspect ratio preserved.)
  • gravity center результат размещаем по центру (horizontal and vertical text placement)
  • extent 150x75 размер исходного изо (set the image size)
  • quality 100 без потери качества качества (JPEG/MIFF/PNG compression level)
    +profile "*" убираем излишнею EXIF инфо (add, delete, or apply an image profile)


Аналогично, используя convert, можно сделать код подготовки превьюшек на сайтах компактнее.

Экономия времени и сил на лицо!

Примечание: Если из командной запускаете не забывайте экранировать ^

Дополнительные источники на данную тему:
Example Usage mogrify
Image Geometry

Комментариев нет:

Отправить комментарий