web-dev-qa-db-fra.com

Convertir tous les png, jpeg, jpg en jpg et les compresser en utilisant imagemagick

Je suis presque là avec ce code:

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

Mais les fichiers de sortie apparaissent avec leur ancienne extension avec un ".jpg" ajouté à la fin, exemple: imageA.png.jpg.

Comment peut résoudre cela?

4
K_dev

Remplacez la ligne:

BASE=`basename $PHOTO`

Avec celui-ci:

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

Puis réessaye.

5
Parto

Modifiez votre code dans ce formulaire:

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

Plutôt que ceci $BASE.jpg, utilisez ${BASE%.*}, puis ajoutez l’extension.

8
George Udosen