2012-08-09 101 views
3

回來所以我有一個CGBitmapContext,我用這個獲取圖像從CGBitmapContextGetData

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]; 

} 

獲得像素在touchlocation然後我改變像素的顏色像下面。

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

我的問題是如何從一個修改後的像素得到一個CGImage回來,這樣我可以更新我的CGBitmapContext

任何幫助將不勝感激,謝謝!

+0

http://lists.apple.com/archives/quartz-dev/2004/Nov/msg00024.html – 2012-08-09 11:15:09

+0

我已經創建了一個'CGBitmapContext'(offscreenBuffer),我從中收集像素數據。你是否建議我需要用新的像素排列來創建另一個? – 2012-08-09 12:16:35

回答

2

使用CGBitmapContextCreateImage()可在修改數據後從您的上下文中生成新的CGImage


您對由CGBitmapContextGetData()返回的數據所做的更改應該修改上下文本身。這是一個可寫的指針,而不是副本。

+0

謝謝,但是如何將修改後的像素應用於'CGBitmapContext' – 2012-08-09 14:17:25

+0

這一步非常感謝,我將它視爲一個副本。 – 2012-08-11 22:04:23