如何在ios 5.0中执行Bump Distortion?

我需要在ios 5.0中执行凹凸失真…我的xcode不显示任何错误,也没有得到任何输出…而跟踪和打印凹凸filter实例打印空值…

任何想法…

一些post显示,这是不工作在iOS 5.0,任何其他方式是有执行凹凸失真…

提前致谢….

问候,

SpyNet的

我的代码…

context = [CIContext contextWithOptions:nil]; CIFilter *bumpDistortion = [CIFilter filterWithName:@"CIBumpDistortion"]; [bumpDistortion setValue:ciimage forKey:kCIInputImageKey]; [bumpDistortion setValue:[CIVector vectorWithX:200 Y:150] forKey:@"inputCenter"]; [bumpDistortion setValue:[NSNumber numberWithFloat:100] forKey:@"inputRadius"]; [bumpDistortion setValue:[NSNumber numberWithFloat:3.0] forKey:@"inputScale"]; CIImage *imageOutput = [bumpDistortion outputImage]; CGImageRef cgimg = [context createCGImage:imageOutput fromRect:[imageOutput extent]]; UIImage *newImg = [UIImage imageWithCGImage:cgimg]; [self.imageView setImage:newImg]; 

正如omz指出的那样,这个特殊的核心图像filter从iOS 5.1开始就缺less了。

但是,您可以使用我的GPUImage框架和GPUImageBulgeDistortionFilter轻松完成此操作:

凹凸畸变

为了处理一个UIImage,并得到一个UIImage的结果,你可以使用下面的代码:

 UIImage *inputImage = [UIImage imageNamed:@"test.jpg"]; GPUImageBulgeDistortionFilter *stillImageFilter = [[GPUImageBulgeDistortionFilter alloc] init]; UIImage *quickFilteredImage = [stillImageFilter imageByFilteringImage:inputImage]; 

您也可以在实时video或预先录制的电影上实时播放。

我在这个答案中展示了一些你可以用这个框架执行的其他变形。

调用[CIFilter filterNamesInCategory:kCICategoryDistortionEffect]会告诉你失真filter(如CIBumpDistortion )在iOS上根本不可用。

您可以使用与kCICategoryBuiltIn相同的方法来获取所有可用filter的列表。