我一直在尝试在我的 Go 应用程序中使用 mozjpeg 进行 JPEG 压缩,因为当通过它提供的 cjpeg 命令行实用程序使用时,它的质量似乎非常好。
但是,使用我的应用程序压缩的图片质量较差 - 具有相同质量级别的更多 JPEG 伪像。
我正在使用来自https://github.com/subuk/go-mozjpeg/blob/master/jpeg/compress.go的 libjpeg-turbo / mozjpeg 的 go 绑定
我自己的代码似乎并不太复杂:
libjpegOptions := jpeg.EncoderOptions{
Quality: 92,
OptimizeCoding: true,
ProgressiveMode: true,
}
err = jpeg.Encode(buf, m, &libjpegOptions)
if err != nil {
return nil, err
}
这两个应用程序似乎都链接到与 Homebrew 一起安装的相同版本的 mozjpeg 库:
$ otool -L /opt/mozjpeg/bin/cjpeg
/opt/mozjpeg/bin/cjpeg:
/opt/mozjpeg/lib/libjpeg.62.dylib (compatibility version 65.0.0, current version 65.0.0)
/usr/local/opt/libpng/lib/libpng16.16.dylib (compatibility version 51.0.0, current version 51.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
$ otool -L /Users/fabio/Code/go/bin/imageproxy
/Users/fabio/Code/go/bin/imageproxy:
/opt/mozjpeg/lib/libjpeg.62.dylib (compatibility version 65.0.0, current version 65.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1451.0.0)
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 58286.41.2)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
接下来我可以尝试什么来确保我的应用程序使用与 cjpeg 相同的设置?