七 、Quartz 2D 绘制基本图形

Bitmap

图形上下文用来,储存绘图的基本信息,也决定着,将来要绘制到哪里去。

我们之前在drowRect中获取图形上下文。

那是因为,系统在显示view时,会自动掉用drowRect方法。

在这时(掉用drowRect方法)会自动创建layer图形上下文。

所以我们可以获取到图形上下文(实际上,我们获取的是layer的图形上下文)。

现在,我们要创建bitmap的图形上下文。

和view,layer并没有直接的关系。

也就是说,在系统调用drowRect方法时,不会创建bitmap的图形上下文。

所以,我们不必要,再去创建一个view了。

(我们创建一个view,重写drowRect方法,目的是拿到layer的图形上下文。

将来,将我们绘制的图形,渲染到view上,

因为,图形上下文,决定着将来绘制到哪里去)

如图

嗯嗯,一堆废话...

- (void)viewDidLoad {
    [super viewDidLoad];

    // 创建bitmap图形上下文
    // 这里有两种方法,这个将来图片会模糊,所以我们用下面的
    // UIGraphicsBeginImageContext()
    /**
     *  创建bitmap图形上下文
     *
     *  @param size#>    指定将来创建出来的bitmap的大小
     *  @param opaque#>  YES:不透明  NO:透明
     *  @param scale#>   缩放比例
     */
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 200), YES, 0);

    // 获取刚才创建的bitmap图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();

    // 设置线条颜色
    CGContextSetRGBStrokeColor(ctx, 1, 0, 0, 1);

    // 绘图
    CGContextAddRect(ctx, CGRectMake(0, 0, 100, 100));

    // 渲染
    CGContextStrokePath(ctx);

    // 获取生成的图片
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

    NSData *data = UIImagePNGRepresentation(img);

    [data writeToFile:@"/Users/wangyakang/Desktop/abc1.png" atomically:YES];

}
时间: 2024-10-05 05:32:09

七 、Quartz 2D 绘制基本图形的相关文章

Quartz 2D绘制简单图形

在Quartz 2D中,绘图是通过图形上下文进行绘制的,以下绘制几个简单的图形 首先先创建一个QuartzView.swift文件继承自UIView,然后实现drawRect方法: import UIKit class QuartzView: UIView { // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance duri

iOS开发——图层OC篇&Quartz 2D各种绘制实例

Quartz 2D各种绘制实例 首先说一下,本篇文章只是介绍怎么使用Quartz 2D绘制一些常用的图像效果,关于Quartz和其他相关技术请查看笔者之前写的完整版(Quartz 2D详解) 一:画线 1 // 1.获取跟当前View相关联的layer上下文(画板) 2 // 总结:目前获取的所有上下文都是以UIGraphics开头 3 // CGContextRef:上下文类型 4 // CG:CoreGraphics Ref:引用 5 CGContextRef ctx = UIGraphic

Quartz 2D编程指南(2) - 图形上下文

一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息.字体信息.混合模式等. 我们可以通过几种方式来获取Graphics Context:Quartz提供的创建函数.Mac OS X框架或IOS的UIKit框架提供的函数.Quartz提供了多种Graphics Context的创建函数,包括bitmap和PDF,我们可以使用这些Graphics Co

Quartz 2D - 5.变换(Transforms)

Quartz 2D 绘制模型定义了两种独立的坐标空间:用户空间(用于表现文档页)和设备空间(用于表现设备的本地分辨率).用户坐标空间用浮点数表示坐标,与设备空间的像素分辨率没有关系.当我们需要一个点或者显示文档时, Quartz会将用户空间坐标系统映射到设备空间坐标系统.因此,我们不需要重写应用程序或添加额外的代码来调整应用程序的输出以适应不同的设备. 我们可以通过操作CTM(current transformation matrix)来修改默认的用户空间.在创建图形上下文后,CTM是单位矩阵,

绘图与滤镜全面解析--Quartz 2D 、Core Image

绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz 2D绘制2D图形和Core Image中强大的滤镜功能. Quartz 2D 基本图形绘制 视图刷新 其他图形上下文 Core Image Quartz 2D 在iOS中常用的绘图框架就是Quartz 2D,Quartz 2D是Core Graphics框架的一部分,是一个强大的二维图像绘制引擎.Qu

iOS开发——图形编程OC篇&(六)Quartz 2D高级使用(二)

Quartz 2D高级使用 一.绘图路径 A.简单说明 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. 1.创建路径  cgmutablepathref 调用该方法相当于创建了一个路径,这个路径用来保存绘图信息. 2.把绘图信息添加到路径里边. 以前的方法是点的位置添加到ctx(图形上下文信息)中,ctx 默认会在内部创建一个path用来保存绘图信息. 在图形上下文中有一块存储空间专门用来存储绘图信息,其实这块空间就是CGMutablePathRef. 3.把路径

iOS开发——图形编程OC篇&(三)Quartz 2D绘图

绘图 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件.Bitmap或者显示器的窗口上) 相同的一套绘图序列,指定不同的Graphics Context,就可将相同的图像绘制到不同的目标上. Quartz2D提供了以下几种类型的Graphics Context: Bitmap Graphics Context PDF Graphics

iOS开发——图形编程OC篇&(一)Quartz 2D介绍

Quartz 2D介绍 一.什么是Quartz2D Quartz 2D是?个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 二.Quartz2D在iOS开发中的价值 为了便于搭建美观的UI界面,iOS提供了UIKit框架,??有各种各样的UI控件 UILabel:显?文字 UIImageView:显示图片 UIButton:同时显示图片和?字

Quartz-2D绘图之图形上下文详解

上一篇文章大概描述了下Quartz里面大体所包含的东西,但是对具体的细节实现以及如何调用相应API却没有讲.这篇文章就先讲讲图形上下文(Graphics Context)的具体操作. 所谓Graphics Context,其实就是表示了一个绘制目标,也就是你打算绘制的地方,它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息.字体信息.混合模式等.然而,我们怎样才能获得或者创建一个Graphics Co