我想用ImageMagick压缩一个JPG图像文件,但在大小上不能得到太大的差异。默认情况下,输出大小大于输入。我不知道为什么,但添加了一些+配置文件选项和设置质量后,我可以得到一个较小的尺寸,但仍然类似于原始。
输入图像为255kb,处理图像为264kb(使用+profile删除profile,设置质量为70%)。有没有办法将图像压缩到至少150kb ?这可能吗?我可以使用哪些ImageMagick选项?
我想用ImageMagick压缩一个JPG图像文件,但在大小上不能得到太大的差异。默认情况下,输出大小大于输入。我不知道为什么,但添加了一些+配置文件选项和设置质量后,我可以得到一个较小的尺寸,但仍然类似于原始。
输入图像为255kb,处理图像为264kb(使用+profile删除profile,设置质量为70%)。有没有办法将图像压缩到至少150kb ?这可能吗?我可以使用哪些ImageMagick选项?
当前回答
我在建议的命令中添加了-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
我不确定这种转变是否严重破坏了我的形象,但说实话,我不认为我的转变看起来像垃圾。这是一个广角全景,我不介意一丝不苟的阻碍。
其他回答
一个非常古老但有用的答案。
我需要说的是,对于严肃的大尺寸摄影,-高斯-模糊是不可接受的,而不是压缩比。
对比下图,%95与-高斯模糊0.05 vs. %85不模糊。原始17.5MB(800万像素,有很多细节),%95不模糊5MB, %85不模糊3036KB, %95模糊3365KB。
模糊和压缩比的比较
也许低一点的模糊度,比如0.02会更好。
我用always:
质量在85 渐进(复合压缩) 一个非常小的高斯模糊来优化大小(半径的0.05或0.5)取决于图片的质量和大小,这明显优化了jpeg的大小。 剥离任何注释或EXIF元数据
在形象魔术应该是
convert -strip -interlace Plane -gaussian-blur 0.05 -quality 85% source.jpg result.jpg
或者在新版本中:
magick source.jpg -strip -interlace Plane -gaussian-blur 0.05 -quality 85% result.jpg
源。
From @Fordi in the comments (Don't forget to upvote him if you like this): If you dislike blurring, use -sampling-factor 4:2:0 instead. What this does is reduce the chroma channel's resolution to half, without messing with the luminance resolution that your eyes latch onto. If you want better fidelity in the conversion, you can get a slight improvement without an increase in filesize by specifying -define jpeg:dct-method=float - that is, use the more accurate floating point discrete cosine transform, rather than the default fast integer version.
有一次我需要调整相机照片的大小来冲洗:
原始文件大小: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%,但质量更好(缩放时)。
我使用谷歌Pagespeed Insights图像优化指南,对于ImageMagick,他们推荐以下:
-sampling-factor 4:2:0 带 -quality 85[它可以变化,我使用范围60-80,这里数字越小文件越小] 交错 色彩RGB
ImageMagick中的命令:
convert image.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB image_converted.jpg
使用这些选项,我可以节省高达40%的JPEG大小,而没有太多明显的损失。
我在这里做了一些实验,孩子,高斯模糊是一个很好的不同。我使用的最后一个命令是:
mogrify * -sampling-factor 4:2:0 -strip -quality 88 -interlace Plane -define jpeg:dct-method=float -colorspace RGB -gaussian-blur 0.05
如果没有0.05的高斯模糊,它大约是261kb,对于我正在测试的图像,它大约是171KB。在1440p显示器上,只有当你把图像放大时,才会发现视觉上的差异。