文档章节

BitMap类型的图形上下文

哪一种黑
 哪一种黑
发布于 2016/02/29 20:28
字数 565
阅读 22
收藏 0
点赞 2
评论 0

1,系统提供的几种图形上下文

Quartz2D提供了一下一种类型的Graphics Context(图形上下文):

Bitmap Graphics Context(图片类型的图形上下文)

PDF Graphics Context

Window Graphics Context

Layer Graphics Context(UI控件图形上下文)


关于图片类型的上下文

1>图片类型的上下文需要手动创建,大小也需要手动来传

2>图片类型的上下文需要开启和关闭

3>使用图片类型上下文的一个好处是可以获取一个image对象 并且保存到沙盒或者相册当中

4>图片类型的上下文可以在任何地方使用


2,图形上下文的开启和关闭

a.图形上下文的两种开启方法:

    1,UIGraphicsBeginImageContext(CGSize size);

    2,UIGraphicsBeginImageContextWithOptions(CGSize size,BOOL opaque,CGFloat scale);

一般情况下我们使用的都是第二种方法


b.图形上下文的关闭方法

UIGraphicsEndImageContext();


c.参数解析:

CGSize size是开启一个BitMap类型的图形上下文的大小

BOOL opaque 是指BitMap类型的图形上下文是否透明(NO表示透明)

CGFloat scale 是指图形上下文的缩放比(一般情况填0即可)

如果CGFloat scale = 0,表示默认为设备的缩放比例,IPhone6默认为2,IPhone6plus默认为3;CGFloat scale = 0等价于CGFloat scale = [UIScreen mainScreen].scale(当前设备缩放比);



d.两种开启方法的区别

UIGraphicsBeginImageContext( CGSizeMake(200,200) );

该方法输出的图片的像素是200*200


UIGraphicsBeginImageContextWithOptions(CGSizeMake(200,200),YES,3);

该方法输出的图片像素则是(200*3) * (200*3)即600*600



3,Bitmap类型图形上下文Demo

//开启图形上下文

UIGraphicsBeginImageContextWithOptions(CGSizeMake(200,200),YES,0);


//获取当前图形上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

//绘制圆

CGContextAddArc(ctx, 100, 100, 80, 0, 2 * M_PI);

//渲染

CGContextStrokePath(ctx);


//从图形上下文中获取image对象

UIImage * image =  UIGraphicsGetImageFormCurrentContext();


//获取doc的目录

NSString * path = [[NSSearchPathForDirectoresInDomains(NSDocument Directory,NSUserDomainMask,Yes) lastobject] stringByAppendingPathComponent:@"xx.jpg"];


//把image对象转化成data的对象

NSData * data = UIImageJPGRepresentation(iimage);


//通过data对象调用write to file的方法写入到沙盒当中

[data writeToFile:path atomically:YES];



© 著作权归作者所有

共有 人打赏支持
哪一种黑
粉丝 8
博文 11
码字总数 9722
作品 0
昌平
Quartz 2D绘图

概况 是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境。我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿、PDF文档生成和...

_誌念
2017/08/26
0
0
裁剪图片并保存到相册中

1.加载要裁剪的图片 2.开启一个和图片一样大小的图像上下文(bitmap 图片类型的上下文) UIGraphicsBeginImageContextWithOptions(ctxSize, NO, 0.0); 3.获取刚刚开启的图像上下文 CGContex...

如若初见
2016/04/11
46
0
iOS开发CoreGraphics核心图形框架之二——深入理解图形上下文

iOS开发CoreGraphics核心图形框架之二——深入理解图形上下文 一、引言 在上一篇博客中,介绍了有关CGPath绘制路径的相关方法,其中在View视图的drawRect方法中,已经使用过上下文将Path路径...

珲少
2016/10/16
292
0
在ASP.NET中随意创建图形信息

如果没有一个外部组件的支持,在ASP中是不能动态创建图形的,不管它是一个图表,一个横幅或仅仅是一个图形计数器。可喜的是,这一点在ASP.NET中改变了。现在,我们只需要使用内置功能,就能够...

晨曦之光
2012/03/09
21
0
[Winodows图形编程]初识双缓冲技术

为完成PaintBoardDemo(本人设计的一个基于.NET Framework的WinForm的画图程序),过程中遇到的技术难点之一就是就是要显示任何图形绘制过程中的轨迹,也即需要在pictureBox控件的MouseMove...

MistySoul
2013/03/24
0
0
Quartz 2D简单介绍

一、什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统。 我们可以使用Quartz 2D API 来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿...

如若初见
2016/03/17
73
1
C#实现捕获当前屏幕截图(转)

C#实现捕获当前屏幕截图(转) 编程思路(API 编程): 先调用 GetForegroundWindow 获取当前活动程序窗口句柄,然后调用 GetWindowDC 获取窗口的设备句柄(或 GetDC 函数),调用 BitBlt 位图...

qq_36439293
05/28
0
0
CoreGraphics 之CGAffineTransform仿射变换(3)

CoreGraphics 的 仿射变换 可以用于 平移、旋转、缩放变换路径 或者图形上下文。 (1)平移变换将路径或图形上下文中的形状的当前位置平移到另一个相对位置。举例来说,如果你在(10,20)的...

广州英趣科技
2013/06/19
0
0
iOS上的图形和动画处理笔记

这是我看《iOS上的图形和动画处理》自己摘出来的笔记 iOS上有各种方式可以实现动画:在一个较低的层次提供了这种能力,在更高的层次也提供这种能力。我们可以获得的最高层次的动画能力是通过...

sqkkzsh
2012/11/09
0
0
Quartz 2D绘图

Quartz 2D绘图 Quartz 2D 概述 概述: Quartz 2D是一个⼆维图形绘制引擎,支持iOS环境和Mac OS X环境。我们可以使⽤用Quartz 2D API来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、...

魏萌萌丶
2016/08/31
24
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

IntelliJ IDEA 详细图解最常用的配置,适合刚刚用的新人。

刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。 比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改...

kim_o
15分钟前
0
0
Google Java编程风格指南

目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合...

niithub
17分钟前
0
0
java.net.MalformedURLException异常说明

1.异常片段 Java代码中,在进行URL url = new URL(urllink)操作时,提示以下异常信息,该类异常主要问题出在参数urllink上面。 异常片段1 java.net.MalformedURLException at java.ne...

lqlm
18分钟前
0
0
CentOS7修改mysql5.6字符集

解决办法:CentOS7下修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家所需要的字符集,是国际编码。 具体操作如下: 1.进入MySQL [root@tianqi-01 ~]# mysql -uroot -p Enter passw...

河图再现
19分钟前
0
0
DevExpress v18.1新版亮点——WPF篇(一)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载>> Accordion Co...

Miss_Hello_World
22分钟前
0
0
Rancher 2.0集群与工作负载告警

Rancher 2.0操作指南。本文将step by step演示如何使用Rancher 2.0中集成的告警功能,包括设置通知程序、设置集群级别以及工作负载级别的告警。 在Rancher 1.x时期,告警功能是很多Rancher用...

RancherLabs
26分钟前
1
0
Python中字符串拼接的N中方法

python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!'print(s) 输出结果:Hello World! 使用这种方式进行字符串连接的操作效率低下,因为python中...

木头释然
28分钟前
9
0
JAVA排序之归并排序

归并排序思路就是不停拆分数组,直到拆成一个一个元素,之后将拆出来的元素按照拆分顺序反过来的顺序合并,出现前边值大于后边值,则换位置,放入临时数组,最后将临时数组覆盖原数组. public stat...

勤奋的蚂蚁
40分钟前
1
0
想要年薪20万,先看会不会这28个企业运维岗经典面试题

1、Linux如何挂载windows下的共享目录? mount.cifs //IP地址/server /mnt/server -o user=administrator,password=123456 linux 下的server需要自己手动建一个 后面的user与pass 是windows...

Py爱好
45分钟前
0
0
python的url分配

from django.conf.urls import url,include urlpatterns=[ url('xinwen/',include('xinwen.urls')) ] from django.urls import path from xinwen import views urlpatterns = [ path('login/......

南桥北木
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部