CGContextSaveGState与CGContextRestoreGState的作用
2015-12-17 11:49
253 查看
使用Quartz时涉及到一个图形上下文,其中图形上下文中包含一个图形状态堆栈。在Quartz创建图形上下文时,该堆栈是空的。
CGContextSaveGState函数的作用是将当前图形状态推入堆栈。之后,您对图形状态所做的修改会影响随后的描画操作,但不影响存储在堆栈中的拷贝。在修改完成后,您可以通过
CGContextRestoreGState函数把堆栈顶部的状态弹出,返回到之前的图形状态。这种推入和弹出的方式是回到之前图形状态的快速方法,避免逐个撤消所有的状态修改;这也是将某些状态(比如裁剪路径)恢复到原有设置的唯一方式。
UIGraphicsBeginImageContextWithOptions(targetRect.size, YES, 0.0); CGContextRef context = UIGraphicsGetCurrentContext(); float myFillColor[] = {1,0,0,1}; //red; CGContextSaveGState(context); CGContextSetRGBFillColor(context, 0,1,1,1); CGContextFillRect(context, targetRect); CGContextSetFillColor(context, myFillColor); CGContextFillEllipseInRect(context, targetRect); CGContextFillPath(context); CGContextRestoreGState(context); UIImage *uiImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();
相关文章推荐
- 有的时候我们需要用一个颜色值生成一张按钮的背景色,下面的方法就很有用了
- 74. PHP 计数器
- boost::filesystem指南
- NewMan——自动化集成测试(安装及使用)
- 网格去噪算法(two-step framework)
- 我眼中的Linux设备树(一 概述)
- 协程 coroutine
- OC准备知识
- Angular - - angular.bind、angular.bootstrap、angular.copy
- Angular - - angular.uppercase、angular.lowercase、angular.fromJson、angular.toJson
- 设计模式之抽象工厂模式
- 1023
- Kettle产品介绍
- java 操作mongodb的增删查改 crud
- LRU (Least Recently Used) 算法的Java实现
- DB-Engines Ranking
- 三局两胜还是五局三胜?
- Xcode7 免证书 测试... (大坑...)
- Angular - - angular.element
- java swing给按钮添加快捷键