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

相關文章
相關標籤/搜索