Преобразуйте весь png, jpeg, jpg к jpg и сожмите их использующий imagemagick

Я почти там с этим кодом:

for PHOTO in /home/dvms/Desktop/projs/others/tests/gulp_test/src/images/*.{png,jpeg,jpg}
   do
       BASE=`basename $PHOTO`
    convert "$PHOTO" -quality 50% "/home/dvms/Desktop/projs/others/tests/gulp_test/src/imagesCompressed/$BASE.jpg"
   done

Но выходные файлы появляются со своим старым расширением файла с ".jpg", добавленным в конце, примере: imageA.png.jpg.

Как может решить это?

4
задан 25 August 2018 в 07:32

2 ответа

Замените строку:

BASE=`basename $PHOTO`

С этим:

BASE=`basename $PHOTO | cut -d. -f1`

Затем попробуйте еще раз.

5
ответ дан 23 November 2019 в 11:39

Измените Вас код в эту форму:

for PHOTO in /home/dvms/Desktop/projs/others/tests/gulp_test/src/images/*.{png,jpeg,jpg}
   do
       BASE=$(basename $PHOTO)
    convert "$PHOTO" -quality 50% "/home/dvms/Desktop/projs/others/tests/gulp_test/src/imagesCompressed/${BASE%.*}.jpg"
   done

Вместо этого $BASE.jpg использовать ${BASE%.*} затем добавьте расширение.

8
ответ дан 23 November 2019 в 11:39

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

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