如何渲染离屏 IOS
How to render offscreen IOS
我正在尝试在 swift 中实现一个变形球,但在途中 运行 遇到了这个问题。基本上我需要在屏幕外绘制一些 alpha 径向渐变,然后检查每个像素值以查看它是否高于某个 alpha 阈值,如果高于某个 alpha 阈值,则像素变为黑色,否则为白色。
问题是我无法弄清楚如何创建一个可以在其上绘制和执行计算然后将其显示在屏幕上的屏幕外上下文。
找了很久,还是搞不清楚UIcontexts和CGContext的区别。在我目前的尝试中,我使用了 CGBitmapContext 但无济于事。任何帮助将不胜感激(最好是 swift,但任何事情都会发生)。
您可以按照 here 所述绘制位图图形上下文。
以下是创建图像上下文、使用 CG 调用绘制它,然后获取 UIImage 的方法:
// Create an N*N image
CGSize size = CGSizeMake(N, N);
UIGraphicsBeginImageContext(size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// EG:
CGColorRef backColor = [UIColor lightGrayColor].CGColor;
CGContextSetFillColorWithColor(ctx, backColor);
CGContextFillRect(ctx, r1);
.... more drawing code
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
您可以很容易地获得 CGImageRef:
CGImageRef cgImage = image.CGImage;
最后,您可以按照说明获取底层字节 here。
我正在尝试在 swift 中实现一个变形球,但在途中 运行 遇到了这个问题。基本上我需要在屏幕外绘制一些 alpha 径向渐变,然后检查每个像素值以查看它是否高于某个 alpha 阈值,如果高于某个 alpha 阈值,则像素变为黑色,否则为白色。
问题是我无法弄清楚如何创建一个可以在其上绘制和执行计算然后将其显示在屏幕上的屏幕外上下文。
找了很久,还是搞不清楚UIcontexts和CGContext的区别。在我目前的尝试中,我使用了 CGBitmapContext 但无济于事。任何帮助将不胜感激(最好是 swift,但任何事情都会发生)。
您可以按照 here 所述绘制位图图形上下文。
以下是创建图像上下文、使用 CG 调用绘制它,然后获取 UIImage 的方法:
// Create an N*N image
CGSize size = CGSizeMake(N, N);
UIGraphicsBeginImageContext(size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// EG:
CGColorRef backColor = [UIColor lightGrayColor].CGColor;
CGContextSetFillColorWithColor(ctx, backColor);
CGContextFillRect(ctx, r1);
.... more drawing code
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
您可以很容易地获得 CGImageRef:
CGImageRef cgImage = image.CGImage;
最后,您可以按照说明获取底层字节 here。