Сегодня, подготавливая обзор игрушки Oceanix для сотрудников, столкнулся с необходимостью обрезать кучу изображений
Полученные от скринкаста картинки имели размер 1280x1024 а мне нужны 640x480, для быстрой обработки я воспользовался утилитой convert и скриптом
for f in $(ls); do convert -extent 1028x780 -thumbnail 640x480 $f "$f.jpg"; done
Скрипт, в цикле перебирая изображения, обрабатывает их конвертером с опциями, выделяющими область размером 1028x780, преобразуя её к размеру 640x480 и конвертируя в jpg
Кстати, для быстрого переименнования можно воспользоваться утилитой rename
Предположим что директория завалена файлами вида:
- 2009-04-03-133547_1280x1024_scrot.png
- 2009-04-03-133551_1280x1024_scrot.png
- ..........
- 2009-04-03-133655_1280x1024_scrot.png
- 2009-04-03-133659_1280x1024_scrot.png
И можно смело выкинуть вот эти части имени файла 2009-04-03-133 и _1280x1024_scrot , делается это так:
rename 's/2009-04-03-133//g' *
:~/Desktop/Oceanix$ ls
417_1280x1024_scrot.png 439_1280x1024_scrot.png 500_1280x1024_scrot.png 521_1280x1024_scrot.png 543_1280x1024_scrot.png
423_1280x1024_scrot.png 444_1280x1024_scrot.png 505_1280x1024_scrot.png 527_1280x1024_scrot.png 548_1280x1024_scrot.png
rename 's/_1280x1024_scrot//g' *
:~/Desktop/Oceanix$ ls
417.png 428.png 439.png 449.png 500.png 511.png 521.png 532.png 543.png 553.png
423.png 433.png 444.png 455.png 505.png 516.png 527.png 537.png 548.png 559.png
После изменения пакета ImageMagic изменились некоторые опции. Например,для создания thumbnail с размещением его в жёстких рамках необходимо использовать вот такую команду
convert -define jpeg:size=100x70 -thumbnail 100x70 -gravity center -background '#fff' -extent 100x70 foto1.jpeg foto1_thumb.jpeg
В результате будет создано изображение размером 100x70 с белым фоном, а на нём в центре будет размещена уменьшенная копия оригинального изображения