Board logo

标题: 关于Quartz 2D绘图的简单使用 [打印本页]

作者: look_w    时间: 2019-2-18 19:46     标题: 关于Quartz 2D绘图的简单使用

Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,Quartz 2D的API可以实现许多功能,如:基于路径的绘图、透明度、阴影、颜色管理、反锯齿、PDF文档生成和PDF元数据访问等等.
Quartz 2D的API是Core Graphics框架的一部分,因此其中的很多数据类型和方法都是以CG开头的.
ViewController.m 文件:

    - (void)viewDidLoad {
        [super viewDidLoad];
     
        MyView *view = [[MyView alloc] initWithFrame:CGRectMake(0, 120, 375, 300)];
        [self.view addSubview:view];
    }

MyView.m 文件:
绘制图片

    @implementation MyView
    - (void)drawRectCGRect)rect {
        // Drawing code
        // 1.使用绘制的方法显示图片
        UIImage *image = [UIImage imageNamed"1.png"];
        // 2.把图片绘制到视图上
        [image drawInRect:self.bounds];
    }
    @end

图形上下文(Graphics Context)-----绘制目标,画布

Graphics Context是一个数据类型(CGContextRef),封装了 Quartz 绘制图像到输出设备的信息.输出设备可以是PDF文件丶Bitmap或者显示在窗口上.Quartz中所有的对象都是绘制到一个Graphics Context中!

在iOS应用程序中,如果要在屏幕上进行绘制,需要定义一个UIView类,并实现它的drawRect:方法.视图的drawRect方法在视图显示在屏幕上及它的内容需要更新时被调用.在调用自定义的drawRect:方法后,视图对象自动配置绘图环境,以便能立即执行绘图操作

    Quartz 2D 中默认的坐标系统是: 原点(0,0)在左下角.
    沿着X轴从左向右坐标值增大,沿着Y轴从下到上坐标值增大

    - (void)drawRectCGRect)rect
    {
        // 1.绘制图片
        UIImage *image = [UIImage imageNamed"1.png"];
        // 2.
    //    [image drawInRect:rect];
        // 01 获取画布对象
        CGContextRef context = UIGraphicsGetCurrentContext();
        // 坐标变换
        CGContextRotateCTM(context, M_PI);
        CGContextScaleCTM(context, -1, 1);
        CGContextTranslateCTM(context, 0, -self.frame.size.height);
        // 02 绘制图片
        CGContextDrawImage(context, rect, image.CGImage);
    }
    @end





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0