На этот вопрос уже есть ответ здесь:
Допустим, изображения находятся в каталоге /Desktop/projs/proj1/img/
и я хочу, чтобы вывод шел в /Desktop/projs/proj1/imgResized/
.
Я попробовал эту команду:
convert /Desktop/projs/proj1/img/*.png -resize 130x130\! /Desktop/projs/proj1/imgResized/converted.png
Это работает, но выходные изображения переименовываются в converted-0.png
, converted-1.png
и т.д.
Я протестировал другую команду, чтобы проверить, сохранят ли изображения свое имя:
for PHOTO in /Desktop/projs/proj1/img/*.png; do BASE=`basename $PHOTO` convert /Desktop/projs/proj1/img/*.png -resize 130x130 /Desktop/projs/proj1/imgResized/$BASE.png; done;
Но это не работает.
Как я могу это сделать? И если возможно, как я могу сделать то же самое, но для сжатия всех изображений из папки A в B?
Это:
for i in /home/$USER/Desktop/projs/proj1/img/*.png; do
convert "$i" -resize 130X130 "/home/$USER/Desktop/projs/proj1/imgResized/${i##*/}"
done
должен работать, изменить.
Меньше нажатий клавиш:
for i in ~/Desktop/projs/proj1/img/*.png; do convert "$i" -resize 130X130 "${i/img/imgResized}"; done