从CGBitmapContextGetData获取图像返回

3

我有一个 CGBitmapContext,并且我可以使用以下代码来获取触摸位置的像素值:

unsigned char* data = CGBitmapContextGetData (offscreenBuffer);

if (data != NULL) {
    offset = 4*((self.bounds.size.width*round(coord.y))+round(coord.x));
    int alpha =  data[offset];
    int red = data[offset+1];
    int green = data[offset+2];
    int blue = data[offset+3];

} 

然后我像下面这样更改像素颜色。

data[offset]=255;
data[offset+1]=255;
data[offset+2]=0;
data[offset+3]=0;

我的问题是如何从修改后的像素中获取一个CGImage,以便我可以更新我的CGBitmapContext?任何帮助将不胜感激,谢谢!


http://lists.apple.com/archives/quartz-dev/2004/Nov/msg00024.html - Paresh Navadiya
我已经创建了一个CGBitmapContext(offscreenBuffer),从中收集像素数据。您是在建议我需要使用新的像素排列创建另一个吗? - EagerMike
1个回答

2
使用CGBitmapContextCreateImage()从您的上下文生成新的CGImage,修改数据后。
您对CGBitmapContextGetData()返回的数据所做的更改应该修改上下文本身。那是一个可写指针,而不是一份副本。

谢谢,但是中间的步骤怎么办?将修改后的像素应用到CGBitmapContext - EagerMike
非常感谢,我一直把它当作复制来处理。 - EagerMike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接