iphone – 如何渲染到屏幕外的位图,然后使用Core Graphics进行屏幕显示

我想渲染到屏幕外的位图(或RGBA值的数组),然后在视图的drawRect函数中将它们渲染到UIView。我更喜欢完整的32位渲染(包括alpha通道),但也将满足于24位渲染。

有人会用一些代码片段或相关API指向我正确的方向吗?

此外,我知道如何使用OpenGL这样做 – 我只是喜欢在Core Graphics本身做这项工作。

最佳答案
要渲染到一个屏幕上的上下文并将其保存为一个CGImageRef:

void *bitmapData = calloc(height, bytesPerLine);
CGContextRef offscreen = CGBitmapContextCreate(..., bitmapData, ...)
// draw stuff into offscreen
CGImageRef image = CGBitmapContextCreateImage(offscreen);
CFRelease(offscreen);
free(bitmapData);

画在屏幕上:

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextDrawImage(context, rect, image);
}

您也可以将图像保存在视图图层的内容属性(view.layer.contents = image)中,或使用UIImageView。

转载注明原文:iphone – 如何渲染到屏幕外的位图,然后使用Core Graphics进行屏幕显示 - 代码日志