CoreImage是iOS中的一个图像处理框架,提供了强大高效的图像处理功能,可以通过调用简单的API来使用框架所带的各种滤镜对图像进行处理。

CoreImgae的三个重要组成部分:1、CIFiter 滤镜  2、CIContext 创建上下文  3、构建图像数据的模型对象

CIFilter:CIFilter是对图像数据进行处理的核心部分,我的理解是对指定的输入图像经过设置的参数进行一系列计算,然后组合成一个经过处理的输出图像数据,iOS自己带的有几十个类型kCICategory,总计650多种滤镜。只是指定滤镜类型而没有设置参数时,我们可以用setDefauts设置默认参数,滤镜就会根据默认参数对图像进行过滤处理。

CIContext:Core Image通过CIContext来渲染CIFilter产生的对象。滤镜的输入inputImage输出outputImage图像数据都是CIImage,CIImage图像数据不能直接渲染在CPU上,只有当真正将要显示的时候,才会通过第三个对象去渲染。这个对象就是CIContext;CIContext在初始化的时候需要一个字典,可以通过kCIContextUseSoftwareRenderer创建一个基于CPU的CIContext对象,默认是创建基于GPU的CIContext对象,不同之处在于GPU的CIContext对象处理起来会更快但是不能后台处理,如果需要保存到相册的话,一般建议使用CPU处理,以保证图像处理过程中退出后台也能正常处理完,而基于CPU的CIContext对象除了支持更大的图像以外,还能在后台处理。

CIImage:CIImage是一个模型对象,它保存能构建图像的数据,可以是图像的Data,可以是一个文件,也可以是CIFilter输出的对象。

具体步骤:
1、导入CoreImage框架
2、创建CIImage对象
3、创建CIFilter
4、利用键值对设置CIFilter的各种属性
5、获得处理后的图片
6、将得到的图片渲染到视图上

最新文章

  1. Apache Thrift 跨语言服务开发框架
  2. Hibernate 一对多 保存和修改数据
  3. mysql触发器_begin end 执行多次语句
  4. 项目中的五级地址联动效果(js)
  5. VBA对象模型(2)
  6. 简单的as3操作xml
  7. Differential Geometry之第一章欧式空间
  8. Winxp下搭建SVN服务器
  9. Silverlight 中 TreeView 的数据绑定
  10. 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
  11. C#入门经典第六章函数-2-委托
  12. Ubuntu14.04server + LNMP + Zabbix3.4安装教程
  13. 自动化测试(—)Web自动化测试理解
  14. 学习TensorFlow,生成tensorflow输入输出的图像格式
  15. php 数据库乱码。。。php 移动临时文件
  16. java8中Lambda表达式和Stream API
  17. mysql表管理
  18. CentOS6.5上安装MySQL
  19. uarts裸机程序
  20. 从零开始学Kotlin-控制语句(4)

热门文章

  1. linux连接数过多,导致ping包丢包的问题解析
  2. leetcode-14最长公共前缀
  3. python协程--asyncio模块(基础并发测试)
  4. C#多线程图片爬虫
  5. 计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误
  6. spring4笔记----依赖注入的两种形式
  7. python第一百一十八天---ajax--图片验证码 + Session
  8. Thread和Runnable的区别和联系、多次start一个线程会怎么样
  9. HttpHandler实现网页图片防盗链
  10. mac os 10.12 Sierra 连接 惠普 M1136 MFP 打印机,通过 samba 协议,安装驱动,连接打印机