七 、Quartz 2D Bitmap上下文

Bitmap

图形上下文用来,储存绘图的基本信息,也决定着,将来要绘制到哪里去。

我们之前在drowRect中获取图形上下文。

那是因为,系统在显示view时,会自动掉用drowRect方法。

在这时(掉用drowRect方法)会自动创建layer图形上下文。

所以我们可以获取到图形上下文(实际上,我们获取的是layer的图形上下文)。

现在,我们要创建bitmap的图形上下文。

和view,layer并没有直接的关系。

也就是说,在系统调用drowRect方法时,不会创建bitmap的图形上下文。

所以,我们不必要,再去创建一个view了。

(我们创建一个view,重写drowRect方法,目的是拿到layer的图形上下文。

将来,将我们绘制的图形,渲染到view上,

因为,图形上下文,决定着将来绘制到哪里去)

如图

嗯嗯,一堆废话...

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 创建bitmap图形上下文
    // 这里有两种方法,这个将来图片会模糊,所以我们用下面的
    // UIGraphicsBeginImageContext()
    /**
     *  创建bitmap图形上下文
     *
     *  @param size#>    指定将来创建出来的bitmap的大小
     *  @param opaque#>  YES:不透明  NO:透明
     *  @param scale#>   缩放比例
     */
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 200), YES, 0);
    
    // 获取刚才创建的bitmap图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    // 设置线条颜色
    CGContextSetRGBStrokeColor(ctx, 1, 0, 0, 1);
    
    // 绘图
    CGContextAddRect(ctx, CGRectMake(0, 0, 100, 100));
    
    // 渲染
    CGContextStrokePath(ctx);
    
    // 获取生成的图片
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    
    NSData *data = UIImagePNGRepresentation(img);
    
    [data writeToFile:@"/Users/wangyakang/Desktop/abc1.png" atomically:YES];
    
    
}

 

posted @ 2016-04-11 10:57  人生路1/5  阅读(205)  评论(0编辑  收藏  举报