跳转到内容

四个 binding 的默认参数差异

复制本页

很多人认为“相同输入 + 相同意图 = 相同输出”,但四个 binding 对同一意图暴露了不同的默认参数。最保险的假设是没有逐字节一致;比较请先确认默认值。

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 参考基准明确把 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)。
  • 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 逐字验证。