如何把二维码用汇编语言ios生成

嵌入式设计应用

128人已加入

描述

  二维码的介绍

  二维码是用特定的几何图形来记录信息

  在之前,常用的二维码开发框架有:ZXing和ZBarSDK

  苹果从iOS7开始集成了二维码的生成和读取功能,并且之前的框架不支持64位,因此目前只是用苹果的框架即可

  二维码的生成

  二维码的生成就是将固定的信息生成对应的二维码

  生成二维码的步骤:

  (1)。导入CoreImage框架

  (2)。通过滤镜CIFilter生成二维码

  《1》。创建滤镜对象

  《2》。设置滤镜的默认设置

  《3》。给滤镜设置数据(KVC)

  《4》。获取生成的二维码图形

  二维码的生成(此列是根据一段文本生成一个二维码的图片)

  1.1 创建用于生成二维码滤镜

  CIFilter *qrFilter = [CIFilter filterWithName:@“CIQRCodeGenerator”];

  NSData *messageData = [@“最近好吗?” dataUsingEncoding:NSUTF8StringEncoding];

  // 1.2 设置二维滤镜的输入

  [qrFilter setValue:messageData forKey:@“inputMessage”];

  // 1.3取出图片

  CIImage *ciImage = qrFilter.outputImage;

  // 1.4 放大图片

  ciImage = [ciImage imageByApplyingTransform:CGAffineTransformMakeScale(8, 8)];

  #pragma mark - 修改二维码的前景色和背景色

  // 修改二维码的前景色和背景色,当你修改了前景色或背景色都会降低图片的识别度

  CIFilter *falseColorFilter = [CIFilter filterWithName:@“CIFalseColor”];

  // inputImage, 图片

  // inputColor0, 前景颜色

  // inputColor1 背景色

  // 这三个参数都是CoreImage中的对象

  // NSLog(@“%@”,falseColorFilter.inputKeys);

  // 图片

  [falseColorFilter setValue:ciImage forKey:@“inputImage”];

  // 前景色

  [falseColorFilter setValue:[CIColor colorWithRed:1 green:0 blue:0] forKey:@“inputColor0”];

  // 背景色

  [falseColorFilter setValue:[CIColor colorWithRed:0 green:0 blue:1] forKey:@“inputColor1”];

  // 取出滤镜中的图片

  ciImage = falseColorFilter.outputImage;

  // 二维码上面添加头像,也会降低二维码的识别度

  UIImage *qrImage = [UIImage imageWithCIImage:ciImage];

  #pragma mark - 在原来的二维码的图片上画一个头像

  // 在原来的二维码的图片上画一个头像

  // 开启图片上下文

  UIGraphicsBeginImageContext(qrImage.size);

  // 绘制二维码图片

  [qrImage drawInRect:CGRectMake(0, 0, qrImage.size.width, qrImage.size.height)];

  // 绘制头像

  UIImage *headImage = [UIImage imageNamed:@“cang”];

  CGFloat headW = qrImage.size.width * 0.2;

  CGFloat headH = qrImage.size.height * 0.2;

  CGFloat headX = (qrImage.size.width - headW) * 0.5;

  CGFloat headY = (qrImage.size.height - headH) * 0.5;

  [headImage drawInRect:CGRectMake(headX, headY, headW, headH)];

  // 从图片上下文中取出图片

  qrImage = UIGraphicsGetImageFromCurrentImageContext();

  // 关闭图片上下文

  UIGraphicsEndImageContext();

  // 1.6 把CIImage转换为UIImage

  self.imageView.image = qrImage;

  效果图:

  

  生成二维码 带 中间icon ,并且带有阴影效果

  [objc] view plain copy print?

  //指定UIImageView 的 rect 大小

  CGRect rect = CGRectMake(10, 10, [UIScreen mainScreen].bounds.size.width - 20, [UIScreen mainScreen].bounds.size.width - 20);

  //然后,返回一个QRCode图片,通过指定大小的rect和数据字符串,中间带一个icon, 并且有阴影效果

  UIImage *center = [UIImage imageNamed:@“centericon”];

  UIImageView *myImage = [[[ZRQRCodeViewController alloc] init] generateQuickResponseCodeWithFrame:rect dataString:@“https://www.baidu.com” centerImage:center needShadow:YES];

  1、生成原理 通过一个类CIFilter(滤镜)包含二维码中所有的信息,然后生成一张二维码图片 二维码中间的icon(头像),是通过在生成的图片上添加一张图片实现的

  2、生成步骤 创建滤镜 初始化滤镜 添加二维码信息 获取生成的二维码图片 将二维码图片展示出来

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分