滤镜链

滤镜链:即用一个滤镜的output image 当作 另一个滤镜的 input:

 1 CIContext *context = [CIContext contextWithOptions:nil];

 2     CIImage *image = [CIImage imageWithCGImage:[UIImage imageNamed:@"aa11.jpg"].CGImage];

 3     

 4    

 5     

 6     CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];

 7     [filter setValue:image forKey:kCIInputImageKey];

 8     [filter setValue:@0.8f forKey:kCIInputIntensityKey];

 9     CIImage *result = [filter valueForKey:kCIOutputImageKey];

10   

11     CIFilter *gloom = [CIFilter filterWithName:@"CIGloom"];

12     [gloom setValue:result forKey:kCIInputImageKey];

13     [gloom setValue:@15.0f forKey:kCIInputRadiusKey];

14     [gloom setValue:@0.55f forKey:kCIInputIntensityKey];

15     result = [gloom valueForKey:kCIOutputImageKey];

16     

17     CIFilter *bumpDistortion = [CIFilter filterWithName:@"CIBumpDistortion"];

18     [bumpDistortion setValue:result forKey:kCIInputImageKey];

19     [bumpDistortion setValue:[CIVector vectorWithX:300 Y:50] forKey:kCIInputCenterKey];

20     [bumpDistortion setValue:@100.0f forKey:kCIInputRadiusKey];

21     [bumpDistortion setValue:@3.0f forKey:kCIInputScaleKey];

22     result = [bumpDistortion valueForKey:kCIOutputImageKey];

23   

24     

25     CGRect extent = [result extent];

26     CGImageRef cgImage = [context createCGImage:result fromRect:extent];

27     

28     UIImage *resultImg = [UIImage imageWithCGImage:cgImage];

29     

30     UIImageView *imgView = [[UIImageView alloc]initWithFrame:self.view.bounds];

31     [imgView setImage:resultImg];

32     [self.view addSubview:imgView];

 

你可能感兴趣的:(滤镜链)