我正在开发一款Android游戏,现在我的图片文件都是" rgba8888" png文件,我目前的工作流程是使用libpng来分析这些图片文件为" rgba8888"格式化为一大块数据,然后为opengl生成RGBA8888纹理(通过glTexImage2D函数),
现在我想使用RGBA4444颜色格式来降低内存成本,我的问题是:
如何将我的rgba8888 png文件转换为rgba4444格式?(我原本以为PS中的一个简单的导出选项会做,但是否定)
libpng是否支持rgba4444格式?我如何分析它?如果没有,我该怎么办?
答案 0 :(得分:1)
Libpng不支持RGBA4444。但它确实支持用户转换,因此应该可以编写用户回调函数,将RGBA8888像素转换为RGBA4444像素,并将其返回到您的应用程序。
搜索文件" libpng_manual.txt"与libpng一起发布的" user_transform_fn"。有关工作用户转换函数的示例,请查看pngcrush的源代码,搜索" pngcrush_transform_pixels_fn"。