我想用ImageMagick压缩一个JPG图像文件,但在大小上不能得到太大的差异。默认情况下,输出大小大于输入。我不知道为什么,但添加了一些+配置文件选项和设置质量后,我可以得到一个较小的尺寸,但仍然类似于原始。
输入图像为255kb,处理图像为264kb(使用+profile删除profile,设置质量为70%)。有没有办法将图像压缩到至少150kb ?这可能吗?我可以使用哪些ImageMagick选项?
我想用ImageMagick压缩一个JPG图像文件,但在大小上不能得到太大的差异。默认情况下,输出大小大于输入。我不知道为什么,但添加了一些+配置文件选项和设置质量后,我可以得到一个较小的尺寸,但仍然类似于原始。
输入图像为255kb,处理图像为264kb(使用+profile删除profile,设置质量为70%)。有没有办法将图像压缩到至少150kb ?这可能吗?我可以使用哪些ImageMagick选项?
当前回答
对于那些在PHP中使用Imagick类的人
$im -> gaussianBlurImage(0.8, 10); //blur
$im -> setImageCompressionQuality(85); //set compress quality to 85
其他回答
我在建议的命令中添加了-adaptive-resize 60%,但添加了-quality 60%。
convert -strip -interlace Plane -gaussian-blur 0.05 -quality 60% -adaptive-resize 60% img_original.jpg img_resize.jpg
这是我的结果
img_original.jpg = 13,913KB jpg = 845KB
我不确定这种转变是否严重破坏了我的形象,但说实话,我不认为我的转变看起来像垃圾。这是一个广角全景,我不介意一丝不苟的阻碍。
我将添加一个有用的边注和一个减少JPG和PNG的一般性建议。
首先,ImageMagick读取(或者更好地“猜测”…)输入jpeg压缩级别,所以如果你根本不添加-quality NN,输出应该使用与输入相同的级别。有时可能是一个重要的特征。否则,默认级别是-quality 92(参见www.imagemagick.org)
这个建议是关于一个非常棒的免费工具ImageOptim,也用于批处理。 你可以得到更小的jpg(和png,特别是在使用免费的ImageAlpha[非批处理]或免费的Pngyu(如果你需要批处理)之后)。 这些工具不仅适用于Mac和Win,而且可以作为命令行(我建议使用Brew安装,然后在Brew公式中搜索)。
一个非常古老但有用的答案。
我需要说的是,对于严肃的大尺寸摄影,-高斯-模糊是不可接受的,而不是压缩比。
对比下图,%95与-高斯模糊0.05 vs. %85不模糊。原始17.5MB(800万像素,有很多细节),%95不模糊5MB, %85不模糊3036KB, %95模糊3365KB。
模糊和压缩比的比较
也许低一点的模糊度,比如0.02会更好。
对于那些在PHP中使用Imagick类的人
$im -> gaussianBlurImage(0.8, 10); //blur
$im -> setImageCompressionQuality(85); //set compress quality to 85
有一次我需要调整相机照片的大小来冲洗:
原始文件大小:2800 kB 分辨率:3264 x2448
命令:
mogrify -quality "97%" -resize 2048x2048 -filter Lanczos -interlace Plane -gaussian-blur 0.05
结果文件大小为753 kB 2048号决议高模
我用1920x1080分辨率的显示器全屏看不出任何变化。2048分辨率是最好的10厘米照片在360 dpi的最大质量。我不想剥了它。
编辑:我注意到,如果没有模糊,我甚至得到了更好的结果。没有模糊的文件大小是原始的50%,但质量更好(缩放时)。