Есть много изображений одного размера. Есть ли способы обрезать их все до одинаковых координат?
Windows 7.
2 ответа
Вы можете сделать это с помощью imagemagick. Вот несколько примеров из руководства по продукту:
convert rose: rose.gif
convert rose: -crop 40x30+10+10 crop.gif
convert rose: -crop 40x30+40+30 crop_br.gif
convert rose: -crop 40x30-10-10 crop_tl.gif
convert rose: -crop 90x60-10-10 crop_all.gif
convert rose: -crop 40x30+90+60 crop_miss.gif
И один образец цикла может выполнить его для всех изображений. Что-то вроде:
for i in `ls in\`
do
convert $i -crop 40x30+10+10 out/`basename $i`
done
Выше я предполагаю, что файлы находятся в каталоге /, а файлы будут храниться в каталоге /
Поскольку вы работаете в Windows, загрузите переносимые или установочные двоичные выпуски ImageMagick для Windows или установщик, а затем в каталоге с изображениями выполните следующую команду (естественно, с convert.exe где-то в вашей переменной PATH):
for %f in (*.jpg) do convert -crop 32x32+16+16 "%~f" "cropped_%~f"
Вот и все, просто как пирог. Никакая «оболочка UNIX-y» или "более сорока строк кода" не требуется, как предлагают некоторые.