怎么样:
jpegtran -copy none -optimize -outfile image.jpg image.jpg
无论如何,我都不是Shell专家,但是我认为,使用您的原始命令,只要执行了该命令,就会设置重定向,该重定向会覆盖image.jpg。然后,当jpegtran尝试读取它时,它会找到一个空文件。
0
怎么样:
jpegtran -copy none -optimize -outfile image.jpg image.jpg
无论如何,我都不是Shell专家,但是我认为,使用您的原始命令,只要执行了该命令,就会设置重定向,该重定向会覆盖image.jpg。然后,当jpegtran尝试读取它时,它会找到一个空文件。
0
jpegtran -copy none -progressive -optimize -outfile filename filename
要进行全面的优化: -copy none告诉jpegtran抑制源jpeg中存在的所有注释和其他多余的行李, 渐进式生成渐进式jpeg, -optimize执行实际的优化,并且-outfile设置输出文件名。最后一个参数是输入文件名:如果它们相同,则文件将在适当位置进行优化。
编辑:根据这篇有关无损jpeg压缩工具的文章,您可能还想尝试mozjpeg, 网址为http://blarg.co.uk/blog/comparison-of-jpeg-lossless-compression-tools
0
我使用这个脚本。完美地工作。我希望这有帮助。
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
0
我做到了三行:
jpegtran -optimize image.jpg > image.jpg-opt
cp image.jpg-opt image.jpg
rm image.jpg-opt
效果很好。
[编辑:]一次仅适用于一个文件。
0
我需要优化一些图像,但不更改其名称。
但是,这似乎会创建一个0的文件大小。当我对其他文件名执行此操作时,大小仍然完全相同。