四个 binding 的默认参数差异
很多人认为“相同输入 + 相同意图 = 相同输出”,但四个 binding 对同一意图暴露了不同的默认参数。最保险的假设是没有逐字节一致;比较请先确认默认值。
govips 参考默认值(v2.19.0)
Section titled “govips 参考默认值(v2.19.0)”NewWebpExportParams() 返回:
| 字段 | 默认 |
|---|---|
Quality |
75 |
Lossless |
false |
NearLossless |
false |
ReductionEffort |
4 |
StripMetadata |
false |
TargetSize |
0(不启用) |
NewJpegExportParams() 返回:Quality 80、Interlace true。
NewGifExportParams() 返回:Quality 75、Effort 7、Bitdepth 8。注意 Quality 在原生 gifsave 下不生效(见 gif-quality),Effort/Bitdepth 才真正影响输出。
与本手册 Recipe 的关系
Section titled “与本手册 Recipe 的关系”本手册的 Recipe 参考基准明确把 WebP 输出质量设为 82(见各 Recipe 的 Reference 元数据),这是显式设置,不是默认值。因此默认 75 与 Recipe 展示的 82 不同属正常。
- 编解码 quality 语义:锐化/体积权衡在不同格式不同,quality 不等于“清晰度”。
- 缩放语义:govips
Resize是相对倍数(且需 kernel 参数),与sharp.resize(w,h)的尺寸语义不同。 - 元数据默认:
StripMetadata默认 false,即默认保留并可能处理元数据(见 colour-shift)。 - 动图页数:默认只取第一页,需显式
NumPages=-1(见 animation-multi-page)。
为什么不能假定一致
Section titled “为什么不能假定一致”- sharp 捆绑 libvips 8.18.7,与参考 8.17.3 不同。
- pyvips / CLI 与参考共用系统 libvips 8.17.3,默认更接近,但仍需逐项确认。
- 当前比较策略是 metadata-only,像素级比较仍处 comparison-pending。
- 若你已经显式覆盖所有相关参数,默认值差异就不影响结论。
- 不同 libvips 版本之间的默认也可能变化,不要只依赖本页快照。
- govips v2.19.0 源码(
NewWebpExportParams、NewJpegExportParams、NewGifExportParams的默认值)。 - 本手册 toolchain 基线(libvips 8.17.3、sharp 捆绑 8.18.7)。
- 参考输出 quality 82 见各 Recipe 元数据。
本页只记录参考 binding 的默认值;sharp / pyvips / CLI 的默认行标为 comparison-pending,未经共享 Runner 逐字验证。