web-dev-qa-db-ja.com

すべての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
K_dev

次の行を置き換えます。

BASE=`basename $PHOTO`

これで:

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

その後、再試行してください。

5
Parto

コードを次の形式に変更します。

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
George Udosen