简单二维码的生成

作者: 龙之天下 | 来源:发表于2017-03-21 12:20 被阅读123次

1.iOS7以后,开始集成了二维码的生成和读取功能
2.生成二维码的步骤:
导入CoreImage框架
通过滤镜CIFilter生成二维码
简单的代码案例:

//创建过滤器
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];

//设置默认
[filter setDefaults];

//给过滤器添加数据
NSString *dataString = @"链接......";
NSData *data =  [dataString dataUsingEncoding:NSUTF8StringEncoding];

//3).通过KVO设置滤镜inputMessage数据
[filter setValue:data forKey:@"inputMessage"];

//4).获取输出的二维码
CIImage *outputImage = [filter outputImage];

//5).将CIImage转化成UImage ,并放大显示
self.iconImgView.image = [UIImage imageWithCIImage:outputImage scale:20.0 orientation:UIImageOrientationUp];

3.将CIImage转化成UImage ,并放大显示

// 创建放大的系数
CGAffineTransform tranform = CGAffineTransformMakeScale(10, 10);

// 根据放大系数放大的图片
CIImage *scaleImage = [slCIImage imageByApplyingTransform:tranform];

UIImage *image = [UIImage imageWithCIImage:scaleImage];

4.将头像画到上下文中

//开启上下文
UIImage *drawImg = img;
UIGraphicsBeginImageContext(img.size);

//将图片画到上下文center
[img drawInRect:CGRectMake(0, 0, img.size.width, img.size.height)];

//获取头像,将图片画到上下文中
UIImage *iconImg = [UIImage imageNamed:iconString];
if (iconImg != nil) {
    
    CGFloat width = 60;
    CGFloat height = 60;
    CGFloat originX ;
    CGFloat originY ;
    if (iconSize.width != 0 && iconSize.height != 0) {
        width = iconSize.width;
        height = iconSize.height;
        
    }
    originX = (img.size.width - width) * 0.5;
    originY = (img.size.height - height) * 0.5;
    [iconImg drawInRect:CGRectMake(originX, originY, width, height)];

    //从上下文获取合成的新图片
    drawImg = UIGraphicsGetImageFromCurrentImageContext();
}
   UIGraphicsEndImageContext();  //关闭上下文

相关文章

网友评论

    本文标题:简单二维码的生成

    本文链接:https://www.haomeiwen.com/subject/lpsauttx.html