iOS 视频图像高级程序员移动开发技术前沿

iOS 札记2:Core Graphics小记

2017-09-19  本文已影响306人  南华coder

导语:Core Graphics是iOS和Mac OS X的2D绘图引擎,本文简单介绍Core Graphics绘图相关概念

一、概述

1、iOS的绘图系统

iOS主要的绘图系统有UIKit、Core Graphics、Core Animation、Core Image、OpenGL ES.结构图如下:

iOS的绘图系统结构.png
iOS的绘图系统 主要作用 API缩写前缀
UIKit 使用频率最高,高级别的OC图形接口,它能够访问绘图、动画、字体、图片等内容。 缩写前缀为UI
Core Animation 使用频率较高,提供了强大的2D和3D动画 缩写前缀为CA
Core Graphics 使用频率中,基于C实现的iOS和Mac OS X的2D绘图引擎, 缩写前缀为CG
Core Image 使用频率低,图片的滤镜处理,比如高斯模糊、锐化等 缩写前缀为CL
OpenGL ES 使用频率低,OpenGL针对嵌入式设备的简化版本,用以绘制高性能的2D和3D图形 缩写前缀为GL

说明:图像的滤镜效果建议使用优秀的第三方库 GPUImage,iOS支持两套图形API族:Core Graphics 和OpenGL ES,它们都是基于C的API框架。

2、视图绘制 VS 视图布局
3、UIKit相关绘图API

二、Core Graphics绘图

Core Graphics中的绘图操作都是在在一个上下文中进行,在绘图之前必须获取该上下文,这是绘图任务的第一步。

1、概述
2、UIKit封装的图形上下文操作函数
1)UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
2)UIGraphicsBeginImageContext(CGSize size)
3)UIGraphicsGetImageFromCurrentImageContext(void)
4)UIGraphicsEndImageContext(void)
5)UIGraphicsGetCurrentContext(void)
3、绘图状态切换 和 上下文切换

绘图中,有绘图状态切换上下文切换,对应两组不同函数,要注意区分使用。

1) 绘图状态切换
2) 上下文切换

三、Core Graphics在项目中的使用场景

在项目中,为了满足设计需要,利用Core Graphics完成一些绘制工作,如绘制圆角(Round Corner)、高斯模糊(Gaussian Blur) 和 阴影(Shadow)。这些绘制工作要考虑性能和内存消耗,尽可能将绘制内容缓存下来,避免重复绘制。

1、圆角(Round Corner)
2、高斯模糊(Gaussian Blur)
3、阴影(Shadow)

End

上一篇 下一篇

猜你喜欢

热点阅读