- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我一直在尝试在我的 Go 应用程序中使用 mozjpeg 进行 JPEG 压缩,因为当通过它提供的 cjpeg 命令行实用程序使用时,它的质量似乎非常好。
但是,使用我的应用程序压缩的图片质量较差 - 具有相同质量水平的 JPEG 人工制品要多得多。
我正在为来自 https://github.com/subuk/go-mozjpeg/blob/master/jpeg/compress.go 的 libjpeg-turbo/mozjpeg 使用 go 绑定(bind)
我自己的代码好像也不算太复杂:
libjpegOptions := jpeg.EncoderOptions{
Quality: 92,
OptimizeCoding: true,
ProgressiveMode: true,
}
err = jpeg.Encode(buf, m, &libjpegOptions)
if err != nil {
return nil, err
}
这两个应用程序似乎都链接到相同版本的 mozjpeg 库,与 Homebrew 一起安装:
$ 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 相同的设置?
最佳答案
必须回答我自己的问题,因为我通过查看 mozjpeg 的提交历史找到了问题的解决方案。 cjpeg 在其参数解析代码中对 JPEG 质量等级高于 80 的色度子采样有一个隐式默认值,并且某些颜色的实心区域的边界在色度子采样的库默认值下看起来非常糟糕。
/*
Disable chroma subsampling for good quality ratings, that's what cjpeg command does as well.
That seems to cause some issues with red color.
*/
if opt.Quality >= 80 {
compInfo := (*[3]C.jpeg_component_info)(unsafe.Pointer(cinfo.comp_info))
compInfo[Y].h_samp_factor, compInfo[Y].v_samp_factor = 1, 1
compInfo[Cb].h_samp_factor, compInfo[Cb].v_samp_factor = 1, 1
compInfo[Cr].h_samp_factor, compInfo[Cr].v_samp_factor = 1, 1
}
关于go - 将 mozjpeg 与其 cjpeg 一起使用比将其用作库具有更高的质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991531/
我一直在尝试在我的 Go 应用程序中使用 mozjpeg 进行 JPEG 压缩,因为当通过它提供的 cjpeg 命令行实用程序使用时,它的质量似乎非常好。 但是,使用我的应用程序压缩的图片质量较差 -
我知道 imagemagick 可能会失败但是 mozjpeg 产生的图像要小得多,这是可取的。 我希望通过 mozjpeg 提取视频的所有帧并将其转换为 JPEG。 我试过的: $ ind = 1
我正在使用 nginx1.2 在 Amazon EC2 Linux AMI(HVM)(t2.micro) 上安装 Pimcore 5 和依赖项。有这 2 个软件包,即使已安装但未显示在 Pimcore
这是我在 Windows Powershell 中尝试的命令。 .\dcraw-9.27-ms-64-bit.exe -c "C:\Downloads\RAW_CANON_10D.CRW" | cj
我是一名优秀的程序员,十分优秀!