图形上下文解释CGContextSaveGState/CGContextRestoreGState

原文地址:http://blog.sina.com.cn/s/blog_45e2b66c01010tak.html

 

 

使用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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值