objective-c - name - uiview image




如何在ios 5.0中執行Bump Distortion? (2)

調用[CIFilter filterNamesInCategory:kCICategoryDistortionEffect]會告訴你失真過濾器(如CIBumpDistortion )在iOS上完全不可用。

您可以使用與kCICategoryBuiltIn相同的方法來獲取所有可用過濾器的列表。

我需要在ios 5.0中執行凹凸失真...我的xcode不顯示任何錯誤,也沒有得到任何輸出...而跟踪和打印凹凸過濾器實例打印空值...

任何想法...

一些帖子顯示,這是不工作在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指出的那樣,這個特殊的核心圖像過濾器從iOS 5.1開始就缺少了。

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

為了處理一個UIImage,並得到一個UIImage結果,你可以使用如下的代碼:

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

您也可以在實時視頻或預先錄製的電影上實時播放。

我在這個答案中展示了一些你可以用這個框架執行的其他變形。







core-image