带有alpha丢失颜色通道数据的WebP

时间:2016-09-13 08:53:07

标签: c++ alpha webp

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

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

After saving as WebP

正如您所看到的,零-α区域已经失去了细节。

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

找到解决方案。在通过libwebp代码进行跟踪后,我在WebPConfig中发现了一个名为" exact"的未记录的选项。将此值设置为1将阻止库在编码时优化零-α区域。

答案 1 :(得分:0)

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

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

  

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