我有以下代码,用于将视图的内容捕获到图像中:
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];
最近,我尝试在mainView
上附加一个GLKView
(我用它在图形处理器上实时应用核心图像过滤器)。当我执行上面的代码时,它没有捕获GLKView
中的图形(基本上只是忽略它)。
所以我的问题是,有没有可能将图形捕捉到在GPU上绘制的图像中,而这些图像尚未复制回CPU?
发布于 2013-03-10 03:26:57
您需要使用OpenGL ES获取视图的帧缓冲区像素数据。你不能用renderInContext:
做到这一点。
有几种方法可以使用OpenGL ES来获取数据。有关详细信息,请查看this answer。
https://stackoverflow.com/questions/15303549
复制相似问题