我有一个图像,在其RGB组件是完全白色,具有不同的阿尔法 - 例如,在RGBA格式0xFFFFFF09。但是,当我用UIImage或CGImage API加载这个图像,然后在CGBitmapContext中绘制它时,它会出现灰度,将RGB组件设置为alpha的值 - 所以在上例中,像素会出来0x09090909而不是0xFFFFFF09。因此,应该是白色的,透明度不同的图像,实际上是透明的,而不是透明的。我加载的PNG文件没有问题 - 各种图形程序都能正确显示它。UIImage/CGImage改变我的像素颜色
我想知道这是否可能与我使用kCGImageAlphaPremultipliedFirst有关,但我无法试验它,因为CGBitmapContextCreate失败并显示其他值。
这里最终的目的是获得像素数据,我可以上传到纹理与glTexImage2D。我可以使用libPNG完全绕过iOS API,但还有其他建议吗?非常感谢。
这个问题已经过时了吗?如果不是,你能否提供代码来加载示例项目中的图像以重现问题? – Kjellski
感谢您的报价。我无法弄清楚这一点,因此放弃了CGImage API的使用,并直接使用libpng加载图像。 – RedMarbleGames