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

如何把二维码用汇编语言ios生成,第1张

  二维码的介绍

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

  在之前,常用的二维码开发框架有: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、生成步骤 创建滤镜 初始化滤镜 添加二维码信息 获取生成的二维码图片 将二维码图片展示出来

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2717479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存