Swift 从EAGLContext到UIImage

Swift 从EAGLContext到UIImage,swift,opengl-es,eaglcontext,Swift,Opengl Es,Eaglcontext,在objective-C中,我能够使用glReadPixels将EAGLContext渲染为UIImage,从帧缓冲区读取像素数据,使用像素数据创建CGImage,然后从上下文检索UIImage 我正在Swift中尝试一种新方法,但它返回的是一个空图像。我想从EAGLContext创建一个GLKView,然后使用“快照”获取UIImage。传递到GLKView构造函数的“MyeAlgContext”中包含数据 let glkView = GLKView(frame: CGRect(x: 0,y:

在objective-C中,我能够使用glReadPixels将EAGLContext渲染为UIImage,从帧缓冲区读取像素数据,使用像素数据创建CGImage,然后从上下文检索UIImage

我正在Swift中尝试一种新方法,但它返回的是一个空图像。我想从EAGLContext创建一个GLKView,然后使用“快照”获取UIImage。传递到GLKView构造函数的“MyeAlgContext”中包含数据

let glkView = GLKView(frame: CGRect(x: 0,y: 0,width: self.frame.size.width,height: self.frame.size.height),context: myEaglContext)

glkView.bindDrawable()
glkView.display()

let image : UIImage = glkView.snapshot

有人知道为什么这种方法不起作用吗?

首先,我从来都不知道快照的功能,所以我不是专家。(谢谢你,我会查出来的。)我对OpenGL、CoreImage、CIContexts还比较陌生。。。和他们一起工作才两年。我已经编写了许多语言程序,可以(不情愿地)翻译Obj-C。尽管如此,我注意到了一些我不太清楚的原因——第一个是不能直接从
CIImage
翻译到
UIImage
。您尝试过使用
CIContext.createCGImage
吗?@dfd createCGImage函数将CIImage作为输入,但我只有EAGLContext。我可以将EagleContext转换为CIContext,但我仍然没有CIImage。有没有办法从CIContext制作CIImage?我不知道,抱歉。我说过我不是专家-(