ISO7 二维码详细介绍及使用方法_IOS

使用系统自带生成/扫描二维码

iOS7开始苹果集成了二维码的生成的扫描 ### 生成二维码的步骤

导入CoreImage框架 #import <CoreImage/CoreImage.h>

通过滤镜CIFilte生成二维码 ### 二维码的内容(传统的条形码只能放数字)

纯文本

名片

URL

生成二维码


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

  // 2.恢复默认
  [filter setDefaults];

  // 3.给过滤器添加数据(正则表达式/账号和密码)
  NSString *dataString = @"http://www.520it.com";
  NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding];
  [filter setValue:data forKeyPath:@"inputMessage"];

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

  //因为生成的二维码模糊,所以通过createNonInterpolatedUIImageFormCIImage:outputImage来获得高清的二维码图片

  // 5.显示二维码
  self.imageView.image = [self createNonInterpolatedUIImageFormCIImage:outputImage withSize:300];
 /**
 * 根据CIImage生成指定大小的UIImage
 *
 * @param image CIImage
 * @param size 图片宽度
 */
- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size
{
  CGRect extent = CGRectIntegral(image.extent);
  CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));

  // 1.创建bitmap;
  size_t width = CGRectGetWidth(extent) * scale;
  size_t height = CGRectGetHeight(extent) * scale;
  CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
  CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
  CIContext *context = [CIContext contextWithOptions:nil];
  CGImageRef bitmapImage = [context createCGImage:image fromRect:extent];
  CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
  CGContextScaleCTM(bitmapRef, scale, scale);
  CGContextDrawImage(bitmapRef, extent, bitmapImage);

  // 2.保存bitmap到图片
  CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
  CGContextRelease(bitmapRef);
  CGImageRelease(bitmapImage);
  return [UIImage imageWithCGImage:scaledImage];
}

扫描二维码

// 1.创建捕捉会话
  AVCaptureSession *session = [[AVCaptureSession alloc] init];
  self.session = session;

  // 2.添加输入设备(数据从摄像头输入)
  AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
  AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
  [session addInput:input];

  // 3.添加输出数据(示例对象-->类对象-->元类对象-->根元类对象)
  AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
  [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
  [session addOutput:output];

  // 3.1.设置输入元数据的类型(类型是二维码数据)
  [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];

  // 4.添加扫描图层
  AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
  layer.frame = self.view.bounds;
  [self.view.layer addSublayer:layer];
  self.layer = layer;

  // 5.开始扫描
  [session startRunning];

扫描会调用的方法

// 当扫描到数据时就会执行该方法
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
  if (metadataObjects.count > 0) {
    //获得扫描数据,最后一个时最新扫描的数据
    AVMetadataMachineReadableCodeObject *object = [metadataObjects lastObject];
    NSLog(@"%@", object.stringValue);

    // 停止扫描
    [self.session stopRunning];

    // 将预览图层移除
    [self.layer removeFromSuperlayer];
  } else {
    NSLog(@"没有扫描到数据");
  }
}

以上就是对IOS 二维码的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ios
, 二维码
, ISO7
, 二维码详解
二维码使用方法
ios切换控制 详细介绍、ios8 iso7 iphone4s、二维码介绍、二维码原理介绍、民生二维码收银台介绍,以便于您获取更多的相关知识。

时间: 2024-08-02 14:53:40

ISO7 二维码详细介绍及使用方法_IOS的相关文章

java实现二维码生成的几个方法(推荐)_java

java实现二维码生成的几个方法,具体如下: 1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip 这个是日本人写的,生成的是我们常见的方形的二维码 可以用中文 如:5677777ghjjjjj 2: 使用BarCode4j生成条形码和二维码 BarCode4j网址:http://sourcefor

用JAVA 设计生成二维码详细教程_java

教你一步一步用 java 设计生成二维码 在物联网的时代,二维码是个很重要的东西了,现在无论什么东西都要搞个二维码标志,唯恐落伍,就差人没有用二维码识别了.也许有一天生分证或者户口本都会用二维码识别了.今天心血来潮,看见别人都为自己的博客添加了二维码,我也想搞一个测试一下. 主要用来实现两点: 1. 生成任意文字的二维码. 2. 在二维码的中间加入图像. 一.准备工作. 准备QR二维码3.0 版本的core包和一张jpg图片. 下载QR二维码包. 首先得下载 zxing.jar 包, 我这里用的

二维码连接360助手的方法

  打开电脑上的360手机助手,点击左上角"开始连接"--"通过无线连接". 打开手机上的360手机助手,点击右上角"魔法棒"--"扫描二维码",然后使用360手机助手扫描电脑上的二维码.

QR 二维码中插入图片实现方法_java

QR 二维码中插入图片 二维码终于火了,现在大街小巷大小商品广告上的二维码标签都随处可见,而且大都不是简单的纯二维码,而是中间有个性图标的二维码. 我之前做了一个使用google开源项目zxing实现二维码.一维码编码解码的程序并开放了源码(用C#实现的条形码和二维码编码解码器),今天继续在此程序基础上,实现二维码中间加小图片. 背景知识 QRcode使用里德-所罗门码来进行错误修正.对于我们来说,里德-所罗门编码有两个非常重要的特性.第一,它是一种显式系统码,也就是说,你可以在最终的编码中直接

微信公众平台开发文档 生成带参数的二维码

为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000).两种二维码分别适用于帐号绑定.用户来源统计等场景. 用户扫描带场景值二维码时,可能推送以下两种事件: 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事

JAVA 生成二维码 代码

二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起局部损坏时,照样可以正确

二维码生成与解析代码实现

二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起局部损坏时,照样可以正确

微信公众平台开发教程(六)获取个性二维码的实例_javascript技巧

一.功能介绍 在进行推广时,我们可以告诉对方,我们的微信公众账号是什么,客户可以去搜索,然后关注.二维码给我们提供了极大的便捷,只要简单一扫描,即可关注. 如果已经关注过,立刻跳入对话画面.在我们进行推广时,不再是简陋的文字,可以是一个有个性的二维码,想必会很生动. 微信对二维码提供了很好的支持,而且还可以根据需要生成不同场景的二维码.下面我们将介绍如何获取和使用二维码. 注意:限服务号,且进行了微信认证,费用300 二.相关接口 为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的

java 二维码的生成与解析示例代码_java

二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起局部损坏时,照样可以正确