Эта тема отвечает на вопрос:
http://www.iphonedevsdk.com/forum/iphone-sdk-development/34247-cgimage-pixel-array.html
Создайте CGContext, используя CGBitmapContextCreate, который позволяет вам предоставлять данные для изображения. Затем вы можете записывать пиксели в данные, используя указатель и устанавливая байты самостоятельно.
Как только вы закончите, используйте UIGraphicsGetImageFromCurrentContext () или эквивалентный для захвата данных контекста в объект UIImage.
Если все это кажется немного низкоуровневым, другой вариант будет просто создать CGContext и нарисовать прямоугольники 1x1 в нем. Это не будет удивительно быстро, но не так медленно, как вы думаете, потому что все функции CG - это чистый C, а компилятор оптимизирует любую избыточность:
//create drawing context
UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), NO, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
//draw pixels
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
CGContextSetFillColor( ... your color here ... );
CGContextFillRect(context, CGRectMake(x, y, 1.0f, 1.0f));
}
}
//capture resultant image
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();