如何在iPhone应用程序中添加图像过滤器?(类似于Instagram和picplz所拥有的)
所以我有一个UISlider正在使用CIFilter更改HUE.它的速度非常慢,因为我正在使用uislider时影响基本图像.
任何人都有关于如何更有效地做到这一点的建议?
// UI SLIDER
-(IBAction)changeSlider:(id)sender {
[self doHueAdjustFilterWithBaseImage:currentSticker.image
hueAdjust:[(UISlider *)sender value]];
}
//Change HUE
-(void)doHueAdjustFilterWithBaseImage:(UIImage*)baseImage hueAdjust:(CGFloat)hueAdjust {
CIImage *inputImage = [[CIImage alloc] initWithImage:baseImage];
CIFilter * controlsFilter = [CIFilter filterWithName:@"CIHueAdjust"];
[controlsFilter setValue:inputImage forKey:kCIInputImageKey];
[controlsFilter setValue:[NSNumber numberWithFloat:hueAdjust] forKey:@"inputAngle"];
//NSLog(@"%@",controlsFilter.attributes);
CIImage *displayImage = controlsFilter.outputImage;
CIContext *context = [CIContext contextWithOptions:nil];
if (displayImage == nil){
NSLog(@"Display NADA");
} else {
NSLog(@"RETURN Image");
currentSticker.image = [UIImage imageWithCGImage:[context createCGImage:displayImage fromRect:displayImage.extent]];
}
displayImage = nil;
inputImage = nil;
controlsFilter = nil;
}
Run Code Online (Sandbox Code Playgroud) 我用谷歌搜索过几次,但我没有得到一个正确的答案.我有一个矩阵,我想用离散滤波器(例如用于边缘检测的Sobel算子)进行卷积.是否有可能在iPhone上使用OpenGL ES加速实现这一目标?
如果是,怎么样?如果不是,是否还有其他高性能技巧可以用来加速操作?精灵ARM装配操作可以快速完成吗?最终,我希望在iPhone的ARM处理器上尽可能快地进行卷积.