iOS Quartz2D简单的使用

Quartz2D是一个强大的二维绘图引擎,支持iOS和Mac平台,本文详细介绍了其核心功能,如绘制图形、文字、生成图片等,并通过实例演示了如何使用CGContext进行基本绘图操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac

Quartz 2D可以完成的工作

1.绘制图形

2.绘制文字

3.绘制/生成图片

4.读取/生成PDF

5.截图/裁剪图片

6.自定义UI控件

7.......


相关术语:

图形上下文:图形上下文是一个CGContextRef类型数据

作用:保存绘图信息,绘图状态

决定绘图的输目标(绘制到什么 地方,输出目标可以是PDF,Bitmap或者直接显示到窗口上)

相同的绘图序列,制定不同的图形上下文,就可以会知道不同的目标上

Quartz2D提供了以下几种类型的Graphics Context:
Bitmap Graphics Context
PDF Graphics Context
Window Graphics Context
Layer Graphics Context
Printer Graphics Context

绘图步骤:

获得图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();

拼接路径(下面代码是搞一条线段)
CGContextMoveToPoint(ctx, 10, 10);
CGContextAddLineToPoint(ctx, 100, 100);

绘制路径
CGContextStrokePath(ctx); // CGContextFillPath(ctx);

常用的路径拼接函数:

//新建一个起点
void CGContextMoveToPoint(CGContextRef c, CGFloat x, CGFloat y)

//添加新的线段到某个点
void CGContextAddLineToPoint(CGContextRef c, CGFloat x, CGFloat y)

//添加一个矩形
void CGContextAddRect(CGContextRef c, CGRect rect)

//添加一个椭圆
void CGContextAddEllipseInRect(CGContextRef context, CGRect rect)

//添加一个圆弧
void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y,
  CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise

常用的绘制路径的函数:
//Mode参数决定绘制的模式
void CGContextDrawPath(CGContextRef c, CGPathDrawingMode mode)

//绘制空心路径
void CGContextStrokePath(CGContextRef c)

//绘制实心路径
void CGContextFillPath(CGContextRef c)

//提示:一般以CGContextDraw、CGContextStroke、CGContextFill开头的函数,都是用来绘制路径的

图像上下文栈的操作
将当前的上下文copy一份,保存到栈顶(那个栈叫做”图形上下文栈”)
void CGContextSaveGState(CGContextRef c)

将栈顶的上下文出栈,替换掉当前的上下文
void CGContextRestoreGState(CGContextRef c)


//未完待续



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值