【问题标题】:WebP with alpha losing color channels data带有 alpha 的 WebP 丢失颜色通道数据
【发布时间】:2016-09-13 08:53:06
【问题描述】:

我们目前正在为视频游戏中的纹理切换到 WebP。我们遇到了一个问题,图像中 Alpha 通道设置为零的区域最终会丢失所有细节。您可以在以下示例中看到这种效果:

Original Image (left is color channels, right is alpha channel)

After saving as WebP

如您所见,零 alpha 区域已丢失其细节。

当 Alpha 通道用作透明度时,这种优化是有意义的。但是,在我们的游戏中,我们将 Alpha 用于其他用途,并且需要独立于 Alpha 通道来保持颜色通道的完整性。如何在编码器中禁用此效果,以便颜色通道正常编码?

我应该提到我在 C++ 中使用 libwebp,调用函数 WebPEncodeRGBA。

谢谢!

【问题讨论】:

    标签: c++ alpha webp


    【解决方案1】:

    https://developers.google.com/speed/webp/docs/cwebp

    在本文档中,记录了 -exact 参数。

    -精确 保留透明区域中的 RGB 值。默认为关闭,以提高可压缩性。

    【讨论】:

      【解决方案2】:

      找到了解决办法。在跟踪 libwebp 代码后,我在 WebPConfig 中发现了一个名为“exact”的 undocumented 选项。将此设置为 1 将阻止库在编码时优化零 alpha 区域。

      【讨论】:

      • 如果能添加链接和代码就更好了。它会让你的答案变得更好。谢谢
      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 2012-11-05
      • 2017-08-16
      • 1970-01-01
      • 2014-08-26
      • 2015-03-05
      • 1970-01-01
      • 2013-07-05
      相关资源
      最近更新 更多