使用Quartz 2D擦除图片】的更多相关文章

Quartz 2D 是一个强大的二位图像绘制引擎,在开发中如果遇到需要高度自定义的控件,我们就可能需要用Core Graphics进行绘制. 这几天一同事开发一个聊天中的一个子模块,A 画一幅图,然后发给 B.这需要使用到 Core Graphics,我看了他的代码,图形绘制.填充等 API 使用当然没有问题,但是在需要擦出的时候,他的实现方式是粗暴的绘制跟背景相同颜色的线条.如此不优雅的实现方式,当然不能说服我. 那么优雅的实现方式是什么?通过肉眼枚举CGContext.h中的 API,我找到…
1.Quartz 2D 简介 Quartz 2D 属于 Core Graphics(所以大多数相关方法的都是以 CG 开头),是 iOS/Mac OSX 提供的在内核之上的强大的 2D 绘图引擎,并且这个绘图引擎是设备无关的.也就是说,不用关心设备的大小,设备的分辨率,只要利用 Quartz 2D,这些设备相关的会自动处理. 1.Quartz 2D 在 iOS 开发中的价值 绘制一些系统 UIKit 框架中不好展示的内容,例如饼图 自定义一些控件 不添加 UI 控件的情况下,使 UI 内容更丰富…
Quartz 2D各种绘制实例 首先说一下,本篇文章只是介绍怎么使用Quartz 2D绘制一些常用的图像效果,关于Quartz和其他相关技术请查看笔者之前写的完整版(Quartz 2D详解) 一:画线 // 1.获取跟当前View相关联的layer上下文(画板) // 总结:目前获取的所有上下文都是以UIGraphics开头 // CGContextRef:上下文类型 // CG:CoreGraphics Ref:引用 CGContextRef ctx = UIGraphicsGetCurren…
Quzrtz 2D 绘图的核心 API 是 CGContextRef ,它专门用于绘制各种图形. 绘制图形关键是两步: 1.获取 CGContextRef ; 2.调用 CGContextRef 的方法进行绘制. 在不同的场景下获取 ContextRef 的方法是不同的: 1.在 自定义 UIVie  的时候获取 CGContextRef ,我们会创建一个继承自 UIVIew 的子类,在该 子类的 view 中重写 DrawReact 方法,每当打开该 View的时候,系统就会创建绘图的环境,然…
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,官方文档:Quartz 2D Programming Guide. 一.坐标体系 这样的坐标体系就导致我们使用Quartz 2D画的图是倒转的,我们要做以下处理才能得到我们想要的图片效果: 1.画布延Y轴下移height 2.对Y轴做垂直翻转 这2个步骤的代码为: CGContextTranslateCTM(context, , height); CGContextScaleCTM(context, 1.0, -1.…
本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=list 由于自己的项目需要,从网络上下载了许多关于绘制图形的demo,只是用在自己的项目中,很多地方的代码还是吃不透,于是决定仔细学习一下Quartz 2D这个强大的框架,这里也是站在别人的肩膀上来辅助自己的学习,感谢原博客的详细讲解. Quartz 2D用来干嘛的? Quartz 2D属于 Core Graphics (所以大多数方法以CG开头),是iOS/Mac OSX提供的在内核之上的强大的…
本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书”   Quartz2D须知:   (1)Quartz 2D是苹果官方的二维绘图引擎,同时支持iOS和Mac OS X系统(跨平台,纯 C 语言的) (2)Quartz2D的API是纯C语言的 (3)Quartz2D的API来自于Core Graphics框架         (4)数据类型和函数基本都以CG作为前缀 CGContextRef —— 图形上下文(相当于一个草稿纸) CGPat…
今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singleviewApplication.具体新建就不多说了,然后我们自己写一个UIView的子类,然后创建子类加载到故事板中.(你也可以直接把故事板中的ViewControler的view的父类定义为你自己创建的类),然后我们的操作都是在drawRectangular:方法中实现的:(我采用的是直接修改V…
前言:最近在研究自定义控件,由于想要彻底的定制控件的视图还是要继承UIView,虽然对CALayer及其子类很熟练,但是对Quartz 2D这个强大的框架仍然概念模棱两可.于是,决定学习下,暂定7篇文章讲解,会写一些Demo. 官方文档 本文的代码Demo在最后一部分 Quartz 2D用来干嘛的? Quartz 2D属于Core Graphics(所以大多数相关方法的都是以CG开头),是iOS/Mac OSX 提供的在内核之上的强大的2D绘图引擎,并且这个绘图引擎是设备无关的.也就是说,不用关…
以下几遍关于Quartz 2D博文都是转载自:http://www.cocoachina.com/bbs/u.php?action=topic&uid=38018 iPhone之Quartz 2D系列--图形上下文(2)(Graphics Contexts) 一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息.字体信息.混合模式等. 我们可以通过几…
以下几遍关于Quartz 2D博文都是转载自:http://www.cocoachina.com/bbs/u.php?action=topic&uid=38018 iPhone之Quartz 2D系列--编程指南(1)概览 Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境.我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制.透明度.描影.绘制阴影.透明层.颜色管理.反锯齿.PDF文档生成和PDF元数据访问.在需要的时候,Quartz 2D还可以借…
一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息.字体信息.混合模式等. 我们可以通过几种方式来获取Graphics Context:Quartz提供的创建函数.Mac OS X框架或IOS的UIKit框架提供的函数.Quartz提供了多种Graphics Context的创建函数,包括bitmap和PDF,我们可以使用这些Graphics Co…
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境.我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制.透明度.描影.绘制阴影.透明层.颜色管理.反锯齿.PDF文档生成和PDF元数据访问.在需要的时候,Quartz 2D还可以借助图形硬件的功能. 在Mac OS X中,Quartz 2D可以与其它图形图像技术混合使用,如Core Image.Core Video.OpenGL.QuickTime.例如,通过使用 QuickTime的Graphics…
转换  核心绘图模型定义了两个完全独立的坐标空间:用户空间,一个是代表文档页,和设备空间,另外一个代表本机设备的分辨率.用户空间坐标是与设备空间中像素分辨率无关的浮点数字.当你想要打印或者显示你的文档时,Quartz maps当中用户空间坐标会自动转换为设备空间坐标.因此,你永远不必重写你的应用程序,或者写下额外的代码来调整你在不同设备上的应用程序的输出. 你可以通过在当前转换矩阵上修改默认的用户空间或者 CTM,你创建一个图形上下文后,CTM 是单位矩阵.你可以通过Quartz 转换功能去修改…
一.Quartz 2D Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境. Quartz 2D以PDF的规范为基础的图形库,用来绘制二维文字和图形,允许相同的绘图指令在任何装置上,使用可以得到的最佳分辨率,产生相同的输出 Quartz 2D API可以实现许多功能,如基于路径的绘图.透明度.阴影.颜色管理.反锯齿.PDF文档生成和PDF元数据访问等 Quartz 2D API是Core Graphics框架的一部分,因此其中的很多数据类型和方法都是以CG开头的.会经…
转载自:http://www.cofcool.net/development/2015/06/17/ios-study-note-six-Quartz2D/ Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统.Quartz 2D能完成的工作有绘制图形 : 线条\三角形\矩形\圆\弧等:绘制文字:绘制\生成图片(图像):读取\生成PDF:截图\裁剪图片:自定义UI控件等.我们使用的大部分UI控件都是使用Quartz2D绘制出来的,因此Quartz2D在iOS开发中很重要的一个价值是:…
CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. CGContextSaveGState与UIGraphicsPushContext很容易混淆.非专门研究作图的可以说平时工程中几乎用不到  Quartz 2D 的这两个函数…
阴影是绘制在一个图形对象下的且有一定偏移的图片,它用于模拟光源照射到图形对象上所形成的阴影效果,如果7-1所示.文本也可以有阴影.阴影可以让一幅图像看上去是立体的或者是浮动的. 阴影有三个属性: 1.x偏移值,用于指定阴影相对于图片在水平方向上的偏移值. 2.y偏移值,用于指定阴影相对于图片在竖直方向上的偏移值. 3.模糊(blur)值,用于指定图像是有一个硬边(hard edge,如图7-2左边图片所示),还是一个漫射边(diffuse edge,如图7-1右边图片所示) 本章将描述阴影是如何…
Quartz 2D 绘制模型定义了两种独立的坐标空间:用户空间(用于表现文档页)和设备空间(用于表现设备的本地分辨率).用户坐标空间用浮点数表示坐标,与设备空间的像素分辨率没有关系.当我们需要一个点或者显示文档时, Quartz会将用户空间坐标系统映射到设备空间坐标系统.因此,我们不需要重写应用程序或添加额外的代码来调整应用程序的输出以适应不同的设备. 我们可以通过操作CTM(current transformation matrix)来修改默认的用户空间.在创建图形上下文后,CTM是单位矩阵,…
不同的设备(显示器.打印机.扫描仪.摄像头)处理颜色的方式是不同的.每种设备都有其所能支持的颜色值范围.一种设备能支持的颜色可能在其它设备中无法支持.为了有效的使用颜色及理解Quartz 2D中用于颜色及颜色空间的函数,我们需要熟悉在Color Management Overview文档中所使用的术语.该文档中讨论了色觉.颜色值.设备依赖及设备颜色空间.颜色匹配问题.再现意图(rendering intent).颜色管理模块和ColorSync.在本章中,我们将学习Quartz处理颜色和颜色空间…
一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息.字体信息.混合模式等. 我们可以通过几种方式来获取Graphics Context:Quartz提供的创建函数.Mac OS X框架或IOS的UIKit框架提供的函数.Quartz提供了多种Graphics Context的创建函数,包括bitmap和PDF,我们可以使用这些Graphics Co…
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 = [[MyV…
Quartz 2D编程指南是论坛会员德鲁伊翻译的国外的Quartz 2D一系列学习资料,供大家参考 Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境.我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制.透明度.描影.绘制阴影.透明层.颜色管理.反锯齿.PDF文档生成和PDF元数据访问.在需要的时候,Quartz 2D还可以借助图形硬件的功能.在Mac OS X中,Quartz 2D可以与其它图形图像技术混合使用,如Core Image.Core…
Graphics Contexts       一个Graphics Context表示一个绘制目标(也能够理解为图形上下文).它包括绘制系统用于完毕绘制指令的绘制參数和设备相关信息.Graphics Context定义了主要的绘制属性,如颜色.裁减区域.线条宽度和样式信息.字体信息.混合模式等.       通过使用Quartz提供的创建函数获得图形上下文或者使用Mac OS X框架或IOS的UIKit框架提供的更高级的函数来获取. Quartz提供了多种Graphics Context的创建…
Quartz 2D基本介绍 Quartz 2D是一个二维绘图引擎 能够,绘制图形 : 线条\三角形\矩形\圆\弧等,绘制文字,绘制\生成图片(图像),读取\生成PDF,截图\裁剪图片,自定义UI控件(最为重要)等, 利用Quartz2D自定义view(自定义UI控件)的步骤 1:新建一个类,继承自UIView 2:实现- (void)drawRect:(CGRect)rect方法(系统会自动调用),然后在这个方法中: 1:取得跟当前view相关联的图形上下文 2:绘制相应的图形内容 3:利用图形…
本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书”   通过 Product -> Analyze 来进行静态分析   可以使用Quartz 2D的函数来指定retain和release一个对象.例如,如果创建了一个CGColorSpace对象,则使用函数CGColorSpaceRetain和CGColorSpaceRelease来retain和release对象. 也可以使用Core Foundation的CFRetain和CFRele…
在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…
Quartz 2D 图形上下文栈  矩阵 // // DJVIew.m // 图形上下文栈 // // Created by zjj on 15/6/30. // Copyright (c) 2015年 zjj. All rights reserved. // #import "DJVIew.h" @implementation DJVIew - (void)drawRect:(CGRect)rect { CGContextRef ref = UIGraphicsGetCurrentC…
Quartz 2D Programming  Guide 官方文档: Quartz 2D Programming Guide 译文: Quartz 2D编程指南(1) - 概览 Quartz 2D编程指南(2) - 图形上下文(Graphics Contexts) Quartz 2D编程指南(3) - 路径(Paths)[上] Quartz 2D编程指南(3) - 路径(Paths)[下] Quartz 2D编程指南(4) - 颜色和颜色空间 Quartz 2D编程指南(5) - 变换 Quar…
前言:这个系列写道这里已经是第五篇了,本文会介绍下阴影和渐变的基础知识,以及一些基本的Demo Code展示,应该还会有两篇,介绍下Bitmap绘制以及Pattern等知识. Shadow shadow(阴影)的目的是为了使UI更具有立体感,如图 shadow主要有三个影响因素 x off-set 决定阴影沿着x的偏移量 y off-set 决定阴影沿着y的偏移量 blur value 决定了阴影的边缘区域是不是模糊的 其中不同的blur效果如图 注意 Shadow也是绘制状态相关的,意味着如果…