0

我需要在ios 5.0中执行 Bump Distortion ...我的 xcode 没有显示任何错误,而且我没有得到任何输出 ...同时跟踪并打印Bump 过滤器实例它打印空值...

任何想法...

一些帖子显示在 ios 5.0 中不起作用, 还有其他方法可以执行凹凸失真...

提前致谢....

问候,

间谍网

我的代码...

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];
4

2 回答 2

3

正如 omz 指出的那样,从 iOS 5.1 开始,这个特殊的 Core Image 过滤器就消失了。

但是,您可以使用我的GPUImage框架和 GPUImageBulgeDistortionFilter 轻松做到这一点:

凹凸失真

要处理 UIImage 并获取 UIImage 结果,您将使用如下代码:

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

您还可以实时对实时视频或预先录制的电影执行此操作。

我在此答案中展示了您可以使用此框架执行的其他一些扭曲。

于 2012-04-19T14:39:42.787 回答
2

调用[CIFilter filterNamesInCategory:kCICategoryDistortionEffect]将显示失真过滤器(例如CIBumpDistortion)在 iOS 上根本不可用。

您可以使用相同的方法kCICategoryBuiltIn来获取所有可用过滤器的列表。

于 2012-04-19T14:13:04.787 回答