K_d*_*dev 4 command-line 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
Run Code Online (Sandbox Code Playgroud)
但是输出文件以旧文件扩展名出现,最后附加了“.jpg”,例如: imageA.png.jpg 。
如何解决这个问题?
将您的代码修改为这种形式:
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
Run Code Online (Sandbox Code Playgroud)
而不是这种$BASE.jpg用法,${BASE%.*}然后添加扩展名。
替换行:
BASE=`basename $PHOTO`
Run Code Online (Sandbox Code Playgroud)
有了这个:
BASE=`basename $PHOTO | cut -d. -f1`
Run Code Online (Sandbox Code Playgroud)
然后再试一次。