iOS在控制器中绘制圆形图像,二维码

 跟系统申请,在内存中,临时创建一块空白的画布,然后,在这个临时的画布上,画图画字符串,绘制完成后,将临时的这块画布 保存成图片,再将图片放到视图上显示
 关键点就是如何开启这块临时的画布?
      UIGraphicsBeginImage xxxx
      UIGraphicsEndImagexxxx
 在这两句中间,编写与绘图有关的代码,曾经在drawRect方法中编写的代码都可以出现在begin和end之间,这个特殊的区间内,系统会自动返回临时的绘图上下文对象,于是所有的draw方法就都能使用了
    - (void)viewDidLoad {
    [super viewDidLoad];
    // 重新绘制图片,生成圆形的内容.再显示到视图上
    [self creatCircleImage];
}
-(void)creatCircleImage
{
    // 1.创建一张临时的空白画布
    // NO代表透明 YES代表不透明
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(120, 120), NO, 0);
    // 2.创建圆形所属的正方形
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 120, 120)];
    [path addClip];
    // 3.绘制图片
    UIImage *image = self.imageView.image;
    [image drawInRect:CGRectMake(0, 0, 120, 120)];
    // 4.将临时画布的内容保存成新的图片
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    // 5.关闭临时绘画区间
    UIGraphicsEndImageContext();
    // 显示新图到图片视图上
    self.imageView.image = newImage;
}

绘制二维码

- (void)viewDidLoad {
    [super viewDidLoad];

    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    [filter setDefaults];
    //为二维码准备背后的二进制数据
    NSData *data = [@"www.xxx.cn" dataUsingEncoding:NSUTF8StringEncoding];
    //使用kvc的方式将data赋给filter
    [filter setValue:data forKey:@"inputMessage"];
    //生成图片
    CIImage *outputImage = [filter outputImage];
    //将CIImage变成UIImage
    UIImage *qrImage = [UIImage imageWithCIImage:outputImage];
    self.imageView.image = qrImage;
}

转载于:https://my.oschina.net/zyboy/blog/617425

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值