0

我有以下代码用于将视图的内容捕获到图像中:

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
{
    UIGraphicsBeginImageContextWithOptions(self.mainView.bounds.size, NO, [UIScreen mainScreen].scale);
}
else
{
    UIGraphicsBeginImageContext(self.mainView.bounds.size);
}

[self.mainView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *image = [UIGraphicsGetImageFromCurrentImageContext() retain];

最近,我尝试GLKViewmainView. 当我执行上面的代码时,它不会捕获其中的图形GLKView(而是基本上只是忽略它)。

所以我的问题是,是否可以将图形捕获到在 GPU 上绘制但尚未复制回 CPU 的图像中?

4

1 回答 1

2

您需要使用 OpenGL ES 获取视图的帧缓冲区像素数据。你不能用renderInContext:.

有几种方法可以使用 OpenGL ES 来获取数据。查看此答案以了解详细信息。

于 2013-03-10T03:26:56.787 回答