我正在寻找一种在缩小图像时获得最佳jpeg压缩的解决方案。我正在比较Vips+Mozjpeg和Imagick(转换(。
我的原始文件(pic.jpg(是6.5 MB。
我运行:
vipsthumbnail pic.jpg --size=1920x1280 --delete -o pic-vips-q96.jpg[Q=96,optimize_coding,strip,intelace]
我的输出文件是1.7MB
我运行:
convert pic.jpg -resize 1920x1280 -quality 96 -interlace plane -strip pic-imagick-q96.jpg
我的输出文件是1.2 MB
我在这里做公平的比较吗?Imagick压缩效果好吗?
原始图像的链接(从unsplash(:https://images.unsplash.com/photo-1545278068-cdca78378350
我比较这两个库,因为它们都有Go绑定,这是我在项目中需要的。
感谢您的建议!
libvips自动禁用Q>90的色度子采样,因此您的两个压缩设置不完全相同。试试这个:
$ vipsthumbnail pic.jpg --size=1920x1280 -o pic-vips-q90.jpg[Q=90,optimize_coding,strip,interlace]
$ ls -l pic-vips-q90.jpg
-rw-r--r-- 1 john john 495764 Dec 20 17:17 pic-vips-q90.jpg
$ convert pic.jpg -resize 1920x1280 -quality 90 -interlace plane -strip pic-imagick-q90.jpg
$ ls -l pic-imagick-q90.jpg
-rw-r--r-- 1 john john 492029 Dec 20 17:17 pic-imagick-q90.jpg
所以他们非常接近。剩下的区别可能只是缩小了算法的尺寸——也许libvips制作的图像稍微清晰一些。
默认情况下,libvips可能会使用libjpeg-turbo。如果你想用mozjpeg压缩,你需要从源代码构建所有内容。