我正在寻找一种在缩小图像时获得最佳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.7 MB
我跑步:
convert pic.jpg -resize 1920x1280 -quality 96 -interlace plane -strip pic-imagick-q96.jpg
我的输出文件是1.2 MB
我在这里进行公平比较吗? Imagick的压缩效果好吗?
到原始图像的链接(不飞溅): https://images.unsplash.com/photo-1545278068-cdca78378350
我正在比较这两个库,因为它们都具有我的项目中需要的Go绑定。
感谢任何建议!
答案 0 :(得分:1)
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压缩,则需要从源代码构建所有内容。