ios图形上下文CGContext
2015-10-08 20:38
381 查看
CGContext即图形上下文,一个很抽象名词,但理解之后觉得这个词总结的很精辟。
图形上下文:网上很多人将其形象的比作画家作画的画布,想要作画,就需要画布(喜欢的话也可以成为画纸),编程绘图也是一样的,想要绘画想要的效果,就首先的有画布,也就是图形上下文,然后通过驱动也硬件显示出来。
凡是说到图形上下文就涉及到自绘,图像处理,自定义uiview并重写drawRect时、CALayer回调drawLayer, 图像处理时都会用到。
1. uiview的drawRect,这种情况系统已经为我们创建了一个绘图上下文,我问使用就可以了
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext(); //获取上下文
CGContextAddArc(context, self.frame.size.width/2, self.frame.size.height, self.frame.size.width/2, 0.0, M_PI, 1);//绘画半圆
[UIColor yellowColor]; //半圆的颜色
CGContextDrawPath(context, kCGPathFillStroke); //渲染图片
}
2. CALayer回调drawLayer ,系统同样为我们创建了一个绘图上下文
3.在"ios图片压缩"一文中提到的图片尺寸的等比例缩放:,这个比较特殊,需要自己创建图像上下文,因为这段代码在哪里都可以使用,所以系统不知道该怎么给我们创建,干脆就让我们自己创建好了。
CGSize size = CGSizeMake(100, 100);//压缩后的尺寸
UIGraphicsBeginImageContext(CGSizeMake(size.width, size.height)); //设置基于位图的上下文,并将其设为当前上下文
[image drawInRect:CGRectMake(0, 0, size.width, size.height)]; //将图片渲染到当前的上下文中
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); //获取当前上下文的图片
UIGraphicsEndImageContext(); //释放上下文
总之,凡是涉及到绘图的都需要用到图形上下文,而绘图都需要这三个步骤:
1. 获取图形上下文
2. 在上下文中绘制图形
3. 渲染图片(将上下文中绘制的图片显示到屏幕)
图形上下文:网上很多人将其形象的比作画家作画的画布,想要作画,就需要画布(喜欢的话也可以成为画纸),编程绘图也是一样的,想要绘画想要的效果,就首先的有画布,也就是图形上下文,然后通过驱动也硬件显示出来。
凡是说到图形上下文就涉及到自绘,图像处理,自定义uiview并重写drawRect时、CALayer回调drawLayer, 图像处理时都会用到。
1. uiview的drawRect,这种情况系统已经为我们创建了一个绘图上下文,我问使用就可以了
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext(); //获取上下文
CGContextAddArc(context, self.frame.size.width/2, self.frame.size.height, self.frame.size.width/2, 0.0, M_PI, 1);//绘画半圆
[UIColor yellowColor]; //半圆的颜色
CGContextDrawPath(context, kCGPathFillStroke); //渲染图片
}
2. CALayer回调drawLayer ,系统同样为我们创建了一个绘图上下文
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{ CGContextAddEllipseInRect(ctx, CGRectMake(10, 10, 100, 100)); //在矩形(10, 10, 100, 100)中绘制一个圆 CGContextSetRGBFillColor(ctx, 1, 0, 0, 1); //设置圆的填充色 CGContextFillPath(ctx); //渲染圆 }
3.在"ios图片压缩"一文中提到的图片尺寸的等比例缩放:,这个比较特殊,需要自己创建图像上下文,因为这段代码在哪里都可以使用,所以系统不知道该怎么给我们创建,干脆就让我们自己创建好了。
CGSize size = CGSizeMake(100, 100);//压缩后的尺寸
UIGraphicsBeginImageContext(CGSizeMake(size.width, size.height)); //设置基于位图的上下文,并将其设为当前上下文
[image drawInRect:CGRectMake(0, 0, size.width, size.height)]; //将图片渲染到当前的上下文中
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); //获取当前上下文的图片
UIGraphicsEndImageContext(); //释放上下文
总之,凡是涉及到绘图的都需要用到图形上下文,而绘图都需要这三个步骤:
1. 获取图形上下文
2. 在上下文中绘制图形
3. 渲染图片(将上下文中绘制的图片显示到屏幕)
相关文章推荐
- iOS:触摸事件和手势识别的介绍
- iOS视图控制对象生命周期及其作用
- ios中block中的探究
- 苹果IOS开发常用的第三方库总结
- IOS异常日志记录与展现功能
- iOS开发 大文件下载封装
- iOS的触摸与手势识别
- iOS9的 NSURLSession
- 为固定高度的网页元素添加 iOS Safari 滚动「惯性效果」的方法
- iOS开发Provisioning profile解析
- IOS读取图片(转载)
- iOS效果 :(1) CALayer 图层阴影,边框,圆角,圆型图片的阴影
- iOS NSString 字符串处理:截取字符串、匹配字符串、分隔字符串、拼接字符串、替换字符串
- nagios4.1.1 服务端及监控端部署(二)之pnp4nagios 配置出图
- iOS异步加载缓存图片
- iOS:对GCD中 同步、异步、并行、串行的见解
- ios开发,javascript直接调用oc代码
- xcode生成的IOS安装文件的位置
- iOS自适应(代码) 简单介绍一下
- iOS开发知识001