文档章节

BitMap类型的图形上下文

哪一种黑
 哪一种黑
发布于 2016/02/29 20:28
字数 565
阅读 34
收藏 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];



哪一种黑
粉丝 7
博文 11
码字总数 9722
作品 0
昌平
私信 提问
加载中
请先登录后再评论。
【opencv】图形的绘制

1.矩形图像的绘制: 原函数:void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8,int shift=0) img就是需要绘制的图像 pt1 and pt......

其实我是兔子
2014/10/08
1.2K
1
Linux 反汇编工具--LDasm

LDasm (Linux 反汇编工具) 是一个基于 Perl/TK 的 objdump/binutils 图形化工具,试图模仿 W32Dasm 工具的外观。可搜索相互参照,将代码从 GAS 转换成 MASM 风格代码等等。...

匿名
2013/01/22
5.6K
1
个人计算机操作系统--eComStation

eComStation(简写为 eCS)是一款基于OS/2,由Serenity Systems发布的个人计算机操作系统。它包含了一系列在OS/2的IBM版本中没有的组件及应用。 eComStation的最初版本v1发布于2001年,基于I...

匿名
2013/03/26
3.2K
0
图形化的 IDE--LiveCode

LiveCode是一个图形化的IDE,允许用户通过拖放控件并编写代码,来创建桌面或移动应用程序(支持Windows、Mac OS、Linux、iOS和Android平台)。LiveCode受苹果HyperCard的启发,采用一种基于英...

匿名
2013/04/12
7.2K
0
Sar数据转HTML--Sar2html

Sar2html 可以将 sar 程序执行的二进制结果数据转成图形的 HTML 格式,它提供了命令行工具、Web 接口和数据收集脚本。使用 sar2ascii 可从服务器 (HP-UX 11.11, 11.23, and 11,31, Redhat 3...

匿名
2013/01/10
1.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在Vue中使用更复杂的插槽

Vue.js是一个易于使用的Web应用程序框架,可用于开发交互式前端应用程序。 在本文中,我将介绍命名插槽和作用域插槽。 命名插槽 有时我们的模板中会有多个插槽。为了区分每个插槽,我们必须给...

前端知否
03/28
0
0
AutoUpdater迁移到Github

一. 摘要   最近一两年在做跨平台的解决方案,使应用程序能支持Android, iOS, Windows, MacOs. Linux等操作系统,在Android, iOS上可以使用Google Play Store 和 Apple App Store 只带的自...

osc_r2ntyjuu
10分钟前
0
0
42. Photo Tourism:三维重建和图像渲染结合的典范

本文同步发表在我的微信公众号和知乎专栏“计算摄影学”,欢迎扫码关注, 一. 从PhotoSynth谢幕讲起 2017年2月6日,微软正式关闭了PhotoSynth的网站和相关服务。这可能是世界上第一个3D图像创...

WangHawk
05/28
0
0
VARCHART XGantt入门教程

甘特图(Xgantt)从1998年的第一个商用版本开始就致力于计划编制和项目管理方面控件的研究和开发,经过20多年的积累和沉淀,目前可为软件开发商和最终用户提供最顶级的计划编制和项目管理的控...

roffey
11分钟前
0
0
.NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作

Avalonia 是一个跨平台的 .NET UI 框架,支持 Windows、Linux、Mac OSX... (以及Android IOS soon..) 本篇主要介绍Avalonia开发过程和Linux适配环节的几个疑难点.. avalonia for vs安装和.de...

osc_o9qsdhyv
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部