Изменение цвета пикселя - PullRequest
1 голос
/ 13 июля 2009

Я могу прочитать определенный пиксель на данном CGPoint, но я искал, чтобы изменить цвет пикселя, и было бы очень признательно, если кто-то может помочь мне с фрагментом кода.

Мой код:

unsigned char* data = CGBitmapContextGetData (cgctx);       

if (data != NULL) {    
  offset = 4*((w*round(point.y))+round(point.x));    
  alpha =  data[offset];     
  red = data[offset+1];             
  green = data[offset+2];           
  blue = data[offset+3];     
  color = [UIColor colorWithRed:(red/255.0f) 
                   green:(green/255.0f) blue:(blue/255.0f) 
                   alpha:(alpha/255.0f)];       
}

1 Ответ

1 голос
/ 13 июля 2009

Непонятно, что вы пытаетесь сделать. Если вы хотите изменить цвет пикселя в исходном CGImageRef, вы должны использовать что-то вроде:


// Set the color of the pixel to 50% grey + 50% alpha
data[offset+0] = 128;
data[offset+1] = 128;
data[offset+2] = 128;
data[offset+3] = 128;

// Create a CGBitmapImageContext 
CGContextRef bitmapContext = CGBitmapContextCreate(data, width, height, CGImageGetBitsPerComponent(), width * 4, CGImageGetColorSpace(), kCGImageAlphPremultipliedFirst);

// Draw the bitmap context back to your original context
CGContextDrawImage(bitmapContext, CGMakeRect(...), cgctx); 

Вы должны внести все свои изменения в данные * сразу, а затем записать измененный буфер растрового изображения обратно в исходный контекст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...