LINUX.ORG.RU

Пакетная подгонка картинок под рамку.

 magick++, ,


0

1

Есть куча картинок (около 1400 мегабайт), все разного размера. Так вот надо сделать, чтобы все они были не больше опреденного разрешения. Если больше то уменьшить с сохранением пропорций. Можно ли это сделать через баш? или проще будет на C++ рекурсивно пройтись по папкам и изменять изображения, только вот мануал по magick++ чет скудный, особо не понял как получить размер и изменить его. Есть варианты?

★★

Последнее исправление: Bupyc (всего исправлений: 1)

man identify

$ identify snap1.png 
snap1.png PNG 974x629 974x629+0+0 8-bit DirectClass 116KB 0.020u 0:00.050
$ identify -format %w snap1.png 
974
$ identify -format %h snap1.png 
629
$ identify -format %w\ %h snap1.png 
974 629

теперь засылаем это в переменную в баш-скрипте

IMAGE_WIDTH=`identify -format %w "$IMAGE_FILENAME"`
IMAGE_HEIGHT=`identify -format %h "$IMAGE_FILENAME"`

IMAGE_FILENAME пишем из первого аргумента скрипта, если (после проверки) он один и ненулевой, и если это действительно имя существующего файла.

Дальше по скрипту что-то делаем при помощи convert.

А запускаем при помощи

find ~/images -name "*.jpg" -exec script_name {} \;

не подсматривай на примеры ниже, напиши сам.

anonymous
()

Фу, всё много проще, нежели написали тут.

convert -resize AxB работает с сохранением пропорций. Просто указываешь нужное A и B, а convert сам разберётся с остальным.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Я делаю sh 1.sh 1/*/*.jpg но она только один файл проходит...как сделать рекурсивно по всем папкам?

Bupyc ★★
() автор топика
Ответ на: комментарий от Bupyc

Твоё решение этого

как сделать рекурсивно по всем папкам?

не делает.

Да еще и взрываться будет регулярно, например на пробелах в именах _каталогов_.

aedeph_ ★★
()
Ответ на: комментарий от aedeph_

Двойные кавычки это решают, разве нет? У меня скрипт нормально прошел по папкам и выполнил задачу.

Bupyc ★★
() автор топика
Ответ на: комментарий от Bupyc

Настоящий рекурсивный обход, что уж там говорить.

aedeph_ ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.