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