iOS QuartzCore - 2D绘图
2016-02-23 16:59
489 查看
图形上下文(Graphics Context):CGContextRef类型的数据,保存绘图信息、绘图状态
绘图流程: 绘制好的图形先保存到图形上下文,后显示到输出目标
一、使用步骤
1.绘图
UIGraphicsBeginImageContextWithOptions( CGSizeMake(200, 200), NO, 0);
//1.获取bitmap上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//2.绘图(画一个圆)
CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, 100, 100));
//3.渲染
CGContextStrokePath(ctx);
//4.获取生成的图片
UIImage *image=UIGraphicsGetImageFromCurrentImageContext();
//5.显示生成的图片到imageview
self.iv.image=image;
//6.保存绘制好的图片到文件中
//先将图片转换为二进制数据,然后再将图片写到文件中
NSData *data=UIImagePNGRepresentation(image);
[data writeToFile:@”/Users/apple/Desktop/abc.png” atomically:YES];
2.自定义UIImageView控件
(1)在自定义类的实现中,重写DrawRect:方法绘制并渲染图形
//重写drawRect:方法
- (void)drawRect:(CGRect)rect
{
[self.image drawInRect:rect];
}
(2)自定义UIImageView
//1.创建
//2.设置图片
//3.设置frame
//4.把创建的自定义的view添加到界面上
SLimageView *iv=[[SLimageView alloc]init];
iv.image=[UIImage imageNamed:@”me”];
iv.frame=CGRectMake(100, 100, 100, 100);
[self.view addSubview:iv];
3.截屏
//延迟两秒保存
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//获取图形上下文
// UIGraphicsBeginImageContext(self.view.frame.size);
UIGraphicsBeginImageContext(self.contentView.frame.size);
//将view绘制到图形上下文中
二、基本属性
三、代码示例
四、总结
绘图流程: 绘制好的图形先保存到图形上下文,后显示到输出目标
一、使用步骤
1.绘图
UIGraphicsBeginImageContextWithOptions( CGSizeMake(200, 200), NO, 0);
//1.获取bitmap上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//2.绘图(画一个圆)
CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, 100, 100));
//3.渲染
CGContextStrokePath(ctx);
//4.获取生成的图片
UIImage *image=UIGraphicsGetImageFromCurrentImageContext();
//5.显示生成的图片到imageview
self.iv.image=image;
//6.保存绘制好的图片到文件中
//先将图片转换为二进制数据,然后再将图片写到文件中
NSData *data=UIImagePNGRepresentation(image);
[data writeToFile:@”/Users/apple/Desktop/abc.png” atomically:YES];
2.自定义UIImageView控件
(1)在自定义类的实现中,重写DrawRect:方法绘制并渲染图形
//重写drawRect:方法
- (void)drawRect:(CGRect)rect
{
[self.image drawInRect:rect];
}
(2)自定义UIImageView
//1.创建
//2.设置图片
//3.设置frame
//4.把创建的自定义的view添加到界面上
SLimageView *iv=[[SLimageView alloc]init];
iv.image=[UIImage imageNamed:@”me”];
iv.frame=CGRectMake(100, 100, 100, 100);
[self.view addSubview:iv];
3.截屏
//延迟两秒保存
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//获取图形上下文
// UIGraphicsBeginImageContext(self.view.frame.size);
UIGraphicsBeginImageContext(self.contentView.frame.size);
//将view绘制到图形上下文中
// [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; [self.contentView.layer renderInContext:UIGraphicsGetCurrentContext()]; //将截屏保存到相册 UIImage *newImage=UIGraphicsGetImageFromCurrentImageContext(); UIImageWriteToSavedPhotosAlbum(newImage,self, @selector(image:didFinishSavingWithError:contextInfo:), nil); });
二、基本属性
三、代码示例
四、总结
相关文章推荐
- 记录iOS中的或者Xcode中的小技巧,小知识点
- iOS程序猿之chart图表(PNChart)
- iOS海哥开发笔记 (海哥原创,iOS之深拷贝和浅拷贝)
- iOS开发在popView的时候出现错误
- iOS 日历控件
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发---将时间戳转换成标准时间
- iOS开发---获取当前日期是星期几
- 开始整理iOS开发的一些经验
- iOS中几种数据持久化方案
- iOS CGAffineTransform属性
- Missing iOS Distribution signing identity for *****问题解决
- 关于目前自己iOS项目使用的第三方开源库
- IOS-隐藏状态栏 status bar
- iOS系统GCD学习(5):信号量机制
- iOS 隐藏系统的导航,使用自定义的导航
- iOS 使用AudioRecorder录音后在使用AVPlayer播放不了声音的问题
- iOS 从一个完整路径中获取不带后缀的文件名
- ios framework通用库的制作
- iOS中 扫描二维码/生成二维码详解