美文网首页JZ专题tom图像
使用Core Image 滤镜

使用Core Image 滤镜

作者: jiangamh | 来源:发表于2015-12-26 13:45 被阅读1297次

  CoreImage 是一个功能强大的框架,通过这个框架很容易对图像进行处理,比如模糊,色彩,像素等,使用CoreImage主要和CIContent,CIImage,CIFilter打交道。

 Core Image三个核心API

CIContext. 所有图像处理都是在一个CIContext 中完成的,这很像是一个Core Image处理器或是OpenGL的上下文。

CIImage. 这个类保存图像数据。它可以从UIImage、图像文件、或者是像素数据中构造出来。

CIFilter. 滤镜类包含一个字典结构,对各种滤镜定义了属于他们各自的属性。滤镜有很多种,比如鲜艳程度滤镜,色彩反转滤镜,剪裁滤镜等等。

了解了以上三个api我们就可以使用了,使用的过程大致如下:

1.创建CIContent对象我们需要使用这个对象将CIImage转为CGImageRef,这个对象可以重复使用,当我们使用CIContent时尽量重复使用,避免频繁创建造成性能问题。

创建方法:

创建CIContent

2.过滤器,CIFilter一般通过filterWithName方法获取,参数为过滤器名字,每个过滤器有自己唯一的属性,通过设置好这些属性对图像进行处理。

3.创建CIImage,它代表需要处理的图像,有多个种创建方法,具体可点进头文件查看。

4.通过[filter outputImage]获得处理过后的CIImage,然后通过CIContent createCGImage: fromRect:方法得到CGImageRef从而得到UIImage,当然我们也可以通过UImage的分类imageWithCIImage得到,这个方法每次都创建了CIContent,并没有对CIContent的重复使用,频繁使用可能影响性能。

下面列举常用的几个滤镜:

色彩控制滤镜-CIColorControls

其中imageFromCIImage:Content如下

该方法主要实现将CIImage转换为UIImage。

反转颜色滤镜-CIColorInvert

棕色滤镜-CISepiaTone

模糊滤镜-CIGaussianBlur

像素滤镜-CIPixellate

人脸检测

featuresWithImage: content:方法如下:

获得左眼/右眼/嘴部位置,通过该方法可以获取脸部的左眼,右眼,嘴部的位置

眼 

FacePartType 为枚举类型定义如下:

Core Image定义了上百种过滤器,但是也只有一部分能使用在ios上,可以通过以下方法获得内设的过滤器。

总结:CoreImage提供了简单的方法对图像进行处理,虽然方法简单,功能却很强大。就是有点不好记住,比如过滤器的名字,太多了不好记,至于过滤器要设置的属性,每个过滤器有自己的属性,记不住属性名,可以通过po [filter attributes]查看过滤器的属性信息。

相关文章

  • 使用Core Image 滤镜

    CoreImage 是一个功能强大的框架,通过这个框架很容易对图像进行处理,比如模糊,色彩,像素等,使用Core...

  • iOS实现模糊效果

    Core Image Core Image 是苹果用来简化图片处理的框架,Core Image 都提供了大量的滤镜...

  • iOS-CoreImage滤镜效果预览

    闲来无事写的 Core Image 里的滤镜效果的Demo,目前 Core Image 有100多种滤镜效果,De...

  • Core Image 创建,组合滤镜

    Core Image API架构 Core Image的插件架构允许编写自定义滤镜与系统滤镜集成来扩展功能。Cor...

  • Core Image滤镜使用大全(转载)

    CoreImage框架是一个专门用来对图片进行处理的框架,其中提供了许多高级功能,可以帮助开发者完成UIKit或者...

  • Core Image

    Core Image前言 Core Image是iOS推出一个进行图像处理相关的库,也可以进行视频方面的处理。滤镜...

  • iOS图形处理篇:Core Image

    Core Image 滤镜是 iOS 5 的新增框架,通过使用这个框架,程序可以非常容易地对图片进行各种特效处理,...

  • Core Image使用

    Core Image是一个做图片滤镜用的框架,提供了大概120多重图片滤镜方式,其大概的使用方法简单记录如下: 1...

  • iOS图像处理(三)CIFilter滤镜介绍

    前言 CIFilter是Core Image中一个比较核心的有关滤镜使用的类。通常CIFilter对象需要一个或多...

  • 100 Days of SwiftUI —— Day 66:In

    现在该对我们的应用程序进行最后的修饰了,这将使用户可以尝试使用不同的 Core Image 滤镜,然后将其结果保存...

网友评论

本文标题:使用Core Image 滤镜

本文链接:https://www.haomeiwen.com/subject/mmcbhttx.html