苹果开发 笔记(36)coreImage

前段时间整理查阅滤镜的说明:滤镜说明
今天继续看coreImage这部分,之前看了一个框架GPUImage,大概了解一下这个框架用于处理图像。今天下午,把之前案例调试了一下。
创建一张带滤镜的图片。使用的过程有几个步骤,以及创建上下文,输出滤镜后的图像,到真正显示屏幕的处理。当中底层为我们做了更多的工作。
这里有几个Image CIImage CGImageRef UIImage 三个不同的概念。明天继续整理这部分的资料

   //1.装一张图片出来先
   NSString *path = [[NSBundle mainBundle] pathForResource:@"bbg" ofType:@"jpg"];
   NSURL *myURL = [NSURL fileURLWithPath:path];

  CIContext *context = [CIContext contextWithOptions:nil];               // 1
  CIImage *ciImage = [CIImage imageWithContentsOfURL:myURL];               // 2

  filter = [CIFilter filterWithName:@"CISepiaTone"];           // 3
  [filter setValue:ciImage forKey:kCIInputImageKey];
  [filter setValue:@0.8f forKey:kCIInputIntensityKey];

  CIImage *outputImg = [filter outputImage];  //4
  CGImageRef cgImage = [context createCGImage:outputImg fromRect:[outputImg extent]];   // 5

  UIImage *uiImage =[UIImage imageWithCGImage:cgImage]; //6
  self.imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bbg.jpg"]];
  [self.view addSubview:self.imageView];

下面更加一下其他图片处理的效果。
选择了CIPhotoEffectProcess 这种效果就可以渲染出下面的效果。 所需要的代码,更改滤镜 类型。(查询有哪些可以在这里查询 滤镜查询)

  filter = [CIFilter filterWithName:@"CIPhotoEffectProcess"];           
  [filter setValue:uiImage forKey:kCIInputImageKey];

你可能感兴趣的:(苹果开发 笔记(36)coreImage)