Как бы я использовал ImageMagick в файле .bat (Windows), чтобы изменить размер всех изображений во всех подкаталогах? - PullRequest
0 голосов
/ 04 июля 2018

У меня есть десятки тысяч изображений на сервере Windows. Файлы имеют все размеры от 100x100 до 6000x6000 пикселей. Файлы являются JPG, GIF и PNG. Файлы находятся во многих вложенных папках.

У меня установлен Imagemagick на сервере. Я ищу помощь в написании сценария ImageMagick, который может запускаться из файла bat (самый верхний каталог будет передан как аргумент, а также максимальный размер пикселя).

Скрипт будет рекурсивно обрабатывать каждый файл изображения в самом верхнем каталоге и всех подкаталогах. Это изменило бы размер изображения, только если ширина или высота была бы больше, чем максимальный размер пикселя (если максимальный параметр размера пикселя был 1200, это изменило бы размер изображения, которое является 4000x2000, но не изображение, которое является 100x500). Это изменило бы ширину или высоту (в зависимости от того, что больше) до максимального размера в пикселях и изменило бы размер другого измерения, чтобы оно было пропорциональным (то есть, оно не будет искажать или искажать изображение при изменении его размера).

Можно ли написать сценарий ImageMagick, который делает все это?

1 Ответ

0 голосов
/ 04 июля 2018

Итак, информации в ссылках с fmw42 было достаточно, чтобы собрать воедино ответ.

FOR /R %f IN (*.jpg) DO mogrify -verbose -resize "1200x1200>" "%f"

Это рекурсивно повлияет на каждый файл .jpg в папке и из папки, из которой он запускается (FOR /R %f IN (*.jpg) DO).

Каждый файл будет сжат до размера 1200x1200, сохраняя соотношение сторон изображения, если рассматриваемое изображение больше 1200 пикселей в любом направлении.

...