使用CGContextDrawimage保留透明像素的颜色?

时间:2013-03-15 21:24:50

标签: ios graphics core-graphics

我正在将存储在磁盘上的TIFF中的图像数据加载到缓冲区中,随后我将其用于创建OpenGL纹理。我通过写CGContext来获取数据。原始图像在每个像素上都是100%白色。从一个像素到下一个像素的唯一变化是alpha值。

当我写入CGContext时,不会保留透明像素的颜色。 “你问为什么要关心透明像素的颜色?”缩放图像时,透明像素的颜色会变得可见,从而产生难看的黑色轮廓伪影。

我尝试直接从CGImage读取数据到缓冲区并使用该缓冲区创建纹理(使用CGImageGetDataProvider(image)),但这仅适用于颜色空间为CGImage是RGBA。据推测,CGContextDrawimage处理从一个颜色空间转换到另一个颜色空间。

我有什么方法可以告诉CGContextDrawimage保留透明像素的颜色?或者我将不得不以其他方式加载我的图像?

0 个答案:

没有答案