如何在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的列表。