七 、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]; }