我需要优化一些图像,但不能更改它们的名称。
jpegtran -copy none -optimize image.jpg > image.jpg 但是,这似乎会创建一个文件大小为0的文件。当我对不同的文件名执行此操作时,大小仍然完全相同。
发布于 2011-04-07 20:29:04
这样如何:
jpegtran -copy none -optimize -outfile image.jpg image.jpg我无论如何都不是shell专家,但我认为,使用您的原始命令,一旦执行,重定向就会设置为覆盖您的image.jpg。然后,当jpegtran尝试读取它时,它会发现一个空文件。
发布于 2012-08-22 12:24:16
我使用这个脚本。工作完美无瑕。我希望这能帮到你。
https://gist.github.com/iimos/7424025
#! /bin/sh
EXTENSIONS="jpe?g"
if [ -z "$1" ]; then
DIR="`pwd`"
else
DIR="$1"
fi
# Optimize JPEG images
find "$DIR" -regextype posix-egrep -regex ".*\.($EXTENSIONS)\$" -type f | xargs -I{} jpegtran -optimize -progressive -outfile "{}.optimized" "{}"
# Rename xxx.jpg.optimized -> xxx.jpg
find "$DIR" -name '*.optimized' -print0 | while read -d $'\0' file; do
chown $(stat -c "%U:%G" "${file%.optimized}") "$file"
chmod $(stat -c "%a" "${file%.optimized}") "$file"
mv -f "$file" "${file%.optimized}";
done用法1:
optimize-images.sh /images/dir用法2:
cd /images/dir
optimize-images.sh 发布于 2011-10-27 21:07:28
我只用了三行代码:
jpegtran -optimize image.jpg > image.jpg-opt
cp image.jpg-opt image.jpg
rm image.jpg-opt效果很好。
编辑:一次只能编辑一个文件。
https://stackoverflow.com/questions/5579183
复制相似问题