iOS - Core Graphics 之 Quartz2D
2016-02-14 17:59
218 查看
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境。我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿、PDF文档生成和PDF元数据访问。
Quartz通过修改当前图形状态(current graphics state)来修改绘制操作的结果。图形状态包含用于绘制程序的参数。绘制程序根据这些绘图状态来决定如何渲染结果。
Quartz通过使用当前转换矩阵(current transformation matrix, CTM)将一个独立的坐标系统(user space)映射到输出设备的坐标系统(device space),以此来解决设备依赖问题。 CTM是一种特殊类型的矩阵(affine transform, 仿射矩阵),通过平移(translation)、旋转(rotation)、缩放(scale)操作将点从一个坐标空间映射到另外一个坐标空间。
Quartz使用Core Foundation内存管理模型(引用计数)。所以,对象的创建与销毁与通常的方式是一样的。在Quartz中,需要记住如下一些规则:
如果创建或拷贝一个对象,你将拥有它,因此你必须释放它。通常,如果使用含有”Create”或“Copy”单词的函数获取一个对象,当使用完后必须释放,否则将导致内存泄露。
如果使用不含有”Create”或“Copy”单词的函数获取一个对象,你将不会拥有对象的引用,不需要释放它。
如果你不拥有一个对象而打算保持它,则必须retain它并且在不需要时release掉。可以使用Quartz 2D的函数来指定retain和release一个对象。例如,如果创建了一个CGColorspace对象,则使用函数CGColorSpaceRetain和CGColorSpaceRelease来retain和release对象。同样,可以使用Core Foundation的CFRetain和CFRelease,但是注意不能传递NULL值给这些函数。
一、图像旋转
图像旋转是图像处理过程中一中常见操作,按照旋转的角度不同,可以分为以下两种:
1、特殊角度旋转
2、任意角度旋转
二、图像缩放
三、图像裁剪
图像裁剪即去除不必要的图像区域,抠出我们希望保留的信息。按照裁剪形状可以分为以下两种:
1、矩形裁剪
[b] 2、任意形状裁剪[/b]
参考
① /article/4991335.html
② http://www.cocoachina.com/bbs/read.php?tid-77731-page-1.html
③ http://supershll.blog.163.com/blog/static/3707043620128492741525/
④ /article/5435056.html
Quartz通过修改当前图形状态(current graphics state)来修改绘制操作的结果。图形状态包含用于绘制程序的参数。绘制程序根据这些绘图状态来决定如何渲染结果。
Quartz通过使用当前转换矩阵(current transformation matrix, CTM)将一个独立的坐标系统(user space)映射到输出设备的坐标系统(device space),以此来解决设备依赖问题。 CTM是一种特殊类型的矩阵(affine transform, 仿射矩阵),通过平移(translation)、旋转(rotation)、缩放(scale)操作将点从一个坐标空间映射到另外一个坐标空间。
Quartz使用Core Foundation内存管理模型(引用计数)。所以,对象的创建与销毁与通常的方式是一样的。在Quartz中,需要记住如下一些规则:
如果创建或拷贝一个对象,你将拥有它,因此你必须释放它。通常,如果使用含有”Create”或“Copy”单词的函数获取一个对象,当使用完后必须释放,否则将导致内存泄露。
如果使用不含有”Create”或“Copy”单词的函数获取一个对象,你将不会拥有对象的引用,不需要释放它。
如果你不拥有一个对象而打算保持它,则必须retain它并且在不需要时release掉。可以使用Quartz 2D的函数来指定retain和release一个对象。例如,如果创建了一个CGColorspace对象,则使用函数CGColorSpaceRetain和CGColorSpaceRelease来retain和release对象。同样,可以使用Core Foundation的CFRetain和CFRelease,但是注意不能传递NULL值给这些函数。
一、图像旋转
图像旋转是图像处理过程中一中常见操作,按照旋转的角度不同,可以分为以下两种:
1、特殊角度旋转
2、任意角度旋转
二、图像缩放
三、图像裁剪
图像裁剪即去除不必要的图像区域,抠出我们希望保留的信息。按照裁剪形状可以分为以下两种:
1、矩形裁剪
[b] 2、任意形状裁剪[/b]
参考
① /article/4991335.html
② http://www.cocoachina.com/bbs/read.php?tid-77731-page-1.html
③ http://supershll.blog.163.com/blog/static/3707043620128492741525/
④ /article/5435056.html
相关文章推荐
- iOS IM开发准备工作(一)XML解析
- iOS开发笔记-圆滑的曲线
- iOS字符串处理详解
- iOS支付宝集成时遇到的问题整理(1)
- iOS 如何查crash bug
- 2016年ios开发者账号申请
- iOS CYLTabBarController集成步骤
- IOS 沙盒机制
- iOS单例
- iOS IM开发blog写作计划
- iOS 版本更新的两种方法
- 深入学习iOS7自定义导航转场动画
- iOS MVVM设计模式
- iOS开发-基础框架
- 详解IOS图层转场动画
- iOS应用软件沙盒sandbox相关知识(整理)
- iOS 图片上画文字
- IOS各种调试技巧豪华套餐
- IOS实战之自定义转场动画详解
- iOS 自定义Actionsheet