`
wsqwsq000
  • 浏览: 675654 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Quartz 2D指南2——Graphics Contexts

 
阅读更多

 

 

Graphics Contexts代表一个绘图目的地。其包含绘图参数和所有与设备相关的信息,这些在绘制系统执行绘制命令的时候是需要的。Graphics Contexts定义了基本的绘制属性,如绘制的颜色,clipping 区域,线的宽度,样式信息,字体信息,compositing options,以及其他的。
    我们可以使用Quartz context创建函数或者IOS的UIKit框架去得到一个Graphics Context。Quartz提供了几种风格的Quartz Graphics Contexts,包括bitmap和PDF。
    下面本文主要讲述如何为各种各样的绘制目标创建Graphics Contexts。Graphics Context在代码的中的数据类型为CGContextRef,是一个不透明的data type。当得到一个Graphics Context之后,可以使用Quratz 2D函数去绘制context,在context上进行一些操作(如translations),改变graphics 的状态参数,如line的宽度和fill color。
    


1.IOS中在一个view Graphics Context上绘制。
   为了在一个ios应用上面绘制,应该先建立一个UIView对象,然后实现其drawRect:方法去进行绘制。当view变的可见的时候或者其内容需要更新的时候,view的drawRect:方法会被调用。在调用自定义的drawRect:方法之前,view对象会自动的配置其绘制环境,然后代码可以立即的绘制。作为配置的一部分,UIView对象先为当前的绘制环境创建一个Graphics Context。我们可以在drawRect:方法中通过调用UIKit的UIGraphicsGetCurrentContext.函数去得到此Graphics Context。
   UIKit使用的缺省坐标系统与Quartz的坐标系统不相同。在UIKit中,原点在左上角。UIView对象通过translating 原点并且通过在y轴乘以-1来改变Quartz Graphics Context使其与UIKit相匹配。




2.创建一个bitmap Graphics Context
    一个bitmap Graphics Context接受一个指针,指向内存缓冲区,其包含一个bitmap的存储空间。当我们在bitmap Graphics Context上paint时,此缓冲区会被更新。当我们释放了Graphics Context,我们将有一个在指定像素格式下的完全更新bitmap。
    在IOS中使用UIGraphicsBeginImageContextWithOptions函数。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics