CGContextRef用法

来源:互联网 发布:mac批量下载网页图片 编辑:程序博客网 时间:2024/05/16 14:03

转载自:http://blog.csdn.net/perfect_promise/article/details/7660220

1、简介Quartz。

Quartz 是主要的描画接口,支持基于路径的描画、抗锯齿渲染、渐变填充模式、图像、颜色、坐标空间变换、以及PDF 文档的创建、显示、和分析。UIKit 为Quartz 的图像和颜色操作提供了Objective-C 的封装。Core Animation 为很多UIKit 的视图属性声明的动画效果提供底层支持,也可以用于实现定制的动画。

在调用您提供的drawRect:方法之前,视图对象会自动配置其描画环境,使您的代码可以立即进行描画。作为这些配置的一部分,UIView 对象会为当前描画环境创建一个图形上下文(对应于CGContextRef 封装类型)

用户坐标空间是您发出的所有描画命令的工作环境。该空间的单位由点来表示。设备坐标空间指的是设备内在的坐标空间,由像素来表示。缺省情况下,用户坐标空间上的一个点等于设备坐标空间的一个像素,这意味着一个点等于1/160英寸。然而,您不应该假定这个比例总是1:1。
UIColor 对象提供了一些便利方法,用于通过RGB、HSB、和灰度值指定颜色值。
您也可以使用Core Graphics 框架中的CGContextSetRGBStrokeColor 和CGContextSetRGBFillColor 函数来创建和设置颜色。
路径轮廓可以用像CGContextStrokePath 这样的函数来画,即用当前的笔划颜色画出以路径为中心位置的线。路径的填充则可以用CGContextFillPath 函数来实现,它的功能是用当前的填充颜色或样式填充路径线段包围的区域。
获取上下文,图形上下文是什么意思?

CGContextRef context = UIGraphicsGetCurrentContext();

2、简单的示例代码

// 画一个正方形图形 没有边框CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5);CGContextFillRect(context, CGRectMake(2, 2, 270, 270));CGContextStrokePath(context);// 写文字CGContextSetLineWidth(context, 1.0);CGContextSetRGBFillColor (context,  1, 1, 1, 1.0);UIFont  *font = [UIFont boldSystemFontOfSize:11.0];[@"fangyp" drawInRect:CGRectMake(40, 40, 80, 20) withFont:font];// 画一条线CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色CGContextMoveToPoint(context, 20, 20);CGContextAddLineToPoint(context, 200,20);CGContextStrokePath(context);// 画正方形边框CGContextSetRGBStrokeColor(context, 1, 1.0, 1.0, 1.0);CGContextSetLineWidth(context, 2.0);CGContextAddRect(context, CGRectMake(2, 2, 270, 270));CGContextStrokePath(context);// 画方形背景颜色CGContextTranslateCTM(ctx, 0.0f, self.view.bounds.size.height);CGContextScaleCTM(ctx, 1.0f, -1.0f);UIGraphicsPushContext(ctx);CGContextSetLineWidth(ctx,320);CGContextSetRGBStrokeColor(ctx, 250.0/255, 250.0/255, 210.0/255, 1.0);CGContextStrokeRect(ctx, CGRectMake(0, 0, 320, 460));UIGraphicsPopContext();

原创粉丝点击