使用Swift向图像添加滤镜-变得简单

使用Apple内置的Core Image功能过滤图像实际上非常简单。 我们需要做的第一件事是创建一个我们想要使用的过滤器类型的枚举:

 枚举FilterType:字符串{ 
 案例Chrome =“ CIPhotoEffectChrome” 
  case Fade =“ CIPhotoEffectFade” 
  case Instant =“ CIPhotoEffectInstant” 
  case Mono =“ CIPhotoEffectMono” 
 案例Noir =“ CIPhotoEffectNoir” 
  case Process =“ CIPhotoEffectProcess” 
  case Tonal =“ CIPhotoEffectTonal” 
 案例转移=“ CIPhotoEffectTransfer” 
  } 

接下来,我们创建一个扩展函数,该函数需要过滤器类型。 然后,它获取这个filter.rawValue并将其输入CIFilter,然后将其应用于图像。

 扩展程序UIImage { 
  func addFilter(filter:FilterType)-> UIImage { 
 让过滤器= CIFilter(名称:filter.rawValue) 

  //将UIImage转换为CIImage并设置为输入 
 让ciInput = CIImage(image:self) 
  filter?.setValue(ciInput,forKey:“ inputImage”) 
  //获取输出CIImage,首先渲染为CGImage以保留适当的UIImage比例 
 让ciOutput = filter?.outputImage 
 让ciContext = CIContext() 
 让cgImage = ciContext.createCGImage(ciOutput !, from:(ciOutput?.extent)!) 
  //返回图片 
 返回UIImage(cgImage:cgImage!) 
  } 
  } 

现在使用这是一行代码:

  ImageView.image = ImageToFilter.addFilter(.Mono) 

这就是输出。 🔥

注意:在将表格视图用于过滤器时,请勿将过滤器放在cellForRowAtIndexPath中。 它会让你慢下来。 在加载到表格视图之前,请确保已完成处理。 我只是在表格视图中完成此操作,因为我将这个项目放置在周围。👌

。单声道

。褪色

& 这么多。 编码愉快! 💪

https://www.buymeacoffee.com/archetapp