本文主要是介绍iOS CoreImage专题(一)—— 概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 前言
- 什么是CoreImage
- 概览
- 查询CoreImage的滤镜列表及它们的属性
- 处理图像
- 概述
- 内建滤镜
- 创建CoreImage上下文
- 在iOS上创建一个不需要实时性能的CoreImage上下文
- 在iOS上创建一个需要实时性能的CoreImage上下文
- 创建一个CIImage对象
- 创建CIFilter并设值
- 获取输出图像
- 渲染输出图像
- 总结
前言
虽然是一个专题,但是每个章节的内容都不算多。
所以我将本专题的Demo汇总到了下面这个git仓库中。
这个demo里面包含了本专题所有的小demo的实现。
通过一个navigationController来管理。本专题是对苹果CoreImage编程指南的整理以及demo的具体实现。
更多内容请参见苹果官方的CoreImage类参考:
https://developer.apple.com/library/prerelease/tvos/documentation/GraphicsImaging/Reference/CoreImagingRef/index.html
github link for demo
什么是CoreImage
CoreImage一个图像处理和分析技术,同时也提供了对视频图像实时处理的技术。它处理的图像数据基于CoreGraphics,CoreVideo,和Image I/O框架,既可以使用GPU也可以使用CPU的渲染路径。CoreImage封装了底层图形处理的实现细节,它只提供非常易用的API接口。你不必知道OpenGL和OpenGL ES是如何利用GPU的,你爷不必知晓GCD(Grand Central Dispatch)是如何利用多核进行处理的,CoreImage帮你把这些都处理好了。
概览
CoreImage框架提供:
- 对内建(built-in)图像处理滤镜的访问
- 特征识别能力
- 对自动图像增强的支持
- 能将多个滤镜组成滤镜链来创建自定义效果
查询CoreImage的滤镜列表及它们的属性
CoreImage拥有其内建(built-in)滤镜库的参考文档。你可以向系统查询哪些滤镜是可用的。对于每个滤镜,你都可以获取一个包含了它所有属性的字典,比如它的输入参数啊,默认参数值啊,最小值和最大值啊,显示名等等。
处理图像
CoreImage拥有三个类来支持图像处理:
- CIFilter,是个可变对象,它代表了一种效果。一个滤镜对象至少有一个输入参数并且产生一个输出图像。
- CIImage,是一个不可变对象,它表示一个图像。一个CIImage所需的图像数据,你可以直接合成,或者从一个文件中提供出来,也可以从一个CIFilter对象的输出来获取。
- CIContext,是Core Image绘制滤镜产生的结果的地方。Core Image上下文可以基于CPU或者GPU。
概述
要使用CoreImage,需要导入头文件: CoreImage/CoreImage.h(在iOS中已经不需要手动import了)。先来看一个简单的例子。
// 创建一个CIContext对象CIContext *context = [CIContext contextWithOptions:nil];// 创建一个CIImage对象。你可以通过各种资源创建CIImageCIImage *image = [CIImage imageWithContentsOfURL:myURL];
这篇关于iOS CoreImage专题(一)—— 概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!