Конвертируйте все 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 .

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

2 ответа

Решение

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

BASE=`basename $PHOTO`

С этим:

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

Тогда попробуйте еще раз.

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

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%.*} затем добавьте расширение.

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