BitMap类型的图形上下文

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

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

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

PDF Graphics Context对象

Window Graphics Context图片

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


关于图片类型的上下文it

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

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

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

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];

相关文章
相关标签/搜索