带alpha的WebP会丢失颜色通道数据
WebP with alpha losing color channels data
我们目前在视频游戏中切换到WebP纹理。我们遇到了一个问题,即图像中alpha通道设置为零的区域最终会丢失所有细节。您可以在下面的示例中看到这种效果:
原图(左为彩色通道,右为alpha通道)
保存为WebP后
你可以看到,0 -alpha区域已经失去了它们的细节。
当alpha通道被用作透明通道时,此优化是有意义的。然而,在我们的游戏中,我们将alpha用于其他内容,并且需要保持独立于alpha通道的颜色通道完整性。如何在编码器中禁用此效果,使颜色通道正常编码?
我应该提到我在c++中使用libwebp,调用函数WebPEncodeRGBA。
谢谢!
https://developers.google.com/speed/webp/docs/cwebp
本文档记录了-exact参数。
准确在透明区域保留RGB值。默认为关闭,以帮助可压缩性。
找到解决方案。通过libwebp代码跟踪后,我在WebPConfig中发现了一个未记录的选项,称为"exact"。将其设置为1将阻止库在编码时优化0 -alpha区域。
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 如何在24位SDL_Surface上设置像素的颜色
- 如何从SDL_Surface获取特定像素的颜色
- 在AVX通道中混洗的最佳方式
- 在Arduino中将PWM通道命名为LEDC是否有特定原因
- 列表视图更改选择颜色
- GtkTreeView 交替行颜色
- dx11 渲染到纹理仅显示透明颜色
- 使用 OpenGL 4.5 更改所选顶点的颜色
- 为什么我的 LEGACY OPENGL 颜色反转了?
- 双击更改 mfc 中列表控件中的行的颜色
- 空 grpc 客户端通道
- 更改 QT 中按钮的颜色
- 根据OPENCV中一个通道中的一个值,查找最大颜色像素
- libpng获取原始颜色通道深度
- OpenCV:如何增加颜色通道
- 将浮点颜色通道(R、G、B)转换为字节值
- 更改DWORD颜色alpha通道值
- 带alpha的WebP会丢失颜色通道数据