UIImage / CGImage改变我的像素颜色

时间:2011-08-17 01:32:10

标签: ios uiimage cgimage cgbitmapcontextcreate

我的RGB成分中的图像是完全白色的,具有不同的alpha值 - 例如,RGBA格式的0xFFFFFF09。但是当我用UIImage或CGImage API加载这个图像,然后在CGBitmapContext中绘制它时,它会出现灰度,RGB组件设置为alpha的值 - 所以在上面的例子中,像素会出来0x09090909而不是0xFFFFFF09。因此,应该是白色的,具有不同透明度的图像基本上是黑色的,而不是透明度。我正在加载的PNG文件没有任何问题 - 各种图形程序都正确显示它。

我想知道这是否与我使用kCGImageAlphaPremultipliedFirst有关,但我无法试验它,因为CGBitmapContextCreate失败了其他值。

这里的最终目的是获取可以使用glTexImage2D上传到纹理的像素数据。我可以使用libPNG完全绕过iOS API,但任何其他建议?非常感谢。

1 个答案:

答案 0 :(得分:0)

黑色背景上的白色,x为alpha,是一个灰色值,对应于所有组件中的x。这就是乘法混合的工作原理。