Изменение размера нескольких изображений с помощью imagemagick из одной папки в другую (и сохранение имени) с помощью команды [duplicate]

На этот вопрос уже есть ответ здесь:

Допустим, изображения находятся в каталоге /Desktop/projs/proj1/img/ и я хочу, чтобы вывод шел в /Desktop/projs/proj1/imgResized/.

  1. Я попробовал эту команду:

    convert /Desktop/projs/proj1/img/*.png -resize 130x130\! /Desktop/projs/proj1/imgResized/converted.png
    

    Это работает, но выходные изображения переименовываются в converted-0.png, converted-1.png и т.д.

  2. Я протестировал другую команду, чтобы проверить, сохранят ли изображения свое имя:

    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?

0
задан 26 August 2018 в 05:11

2 ответа

Это:

for i in /home/$USER/Desktop/projs/proj1/img/*.png; do 
    convert "$i" -resize 130X130 "/home/$USER/Desktop/projs/proj1/imgResized/${i##*/}"
done

должен работать, изменить.

5
ответ дан 28 October 2019 в 02:17

Меньше нажатий клавиш:

 for i in ~/Desktop/projs/proj1/img/*.png; do convert "$i" -resize 130X130 "${i/img/imgResized}"; done
1
ответ дан 28 October 2019 в 02:17

Другие вопросы по тегам:

Похожие вопросы: