我并不是真正了解CI库,只有从未使用过图形或图像处理的人才能获得Apple文档中的功能描述。
我需要能够处理每个帧(来自相机),并根据处理的帧使用变换箭头在每个帧上叠加一个叠加。因此,每次从过滤器制作CGImage而不是直接绘制CIImage,似乎浪费资源,在iPhone 4S上我真的需要更多的性能。
所以,在我使用[context drawImage]直接绘制CIImage的试用中得到了以下内容
1)我尝试在下面的简单UIView中绘制上下文
[context drawImage:arrow inRect:overlayView.frame fromRect:arrow.extent];
箭头是来自CIFilter的有效CIImage。它是有效的,因为如果我将它转换为CGImage,则会进行投影。
上下文如下:
eaglContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
[EAGLContext setCurrentContext:eaglContext];
glkView.context = eaglContext;
glkView.delegate = self;
NSDictionary *options = @{kCIContextWorkingColorSpace : [NSNull null]};
context = [CIContext contextWithEAGLContext:eaglContext options:options];
overlayView已连接,evr可以正常使用。
2)之后,我尝试使用GLKView,在ViewController上设置委托
*!但它永远不会绘制我的CIImage,即使它是一个有效的图像,大小可以很容易地转换成CGImage
绘图代码(在glkView:drawInRect中)是相同的
[context drawImage:arrow inRect:glkView.frame fromRect:arrow.extent];
一些建议?