精华内容
下载资源
问答
  • 移动端: 扫描成功是否有提示 扫描失败是否有提示 只扫描一半时,是否扫描成功 扫缩小的二维码 扫模糊的二维码 ...修改与二维码相关的内容/跳转网址后,不重新生成二维码,扫码进入看信息是否更新 ...

    移动端:

    • 扫描成功是否有提示
    • 扫描失败是否有提示
    • 只扫描一半时,是否扫描成功
    • 扫缩小的二维码
    • 扫模糊的二维码
    • 打开扫描功能一段时间后没有扫描任何二维码,是否有提示用户或自动退出扫描功能
    • 是否支持相册获取二维码,当扫描不是二维码时提示是否正确
    • 是否有点亮功能(考虑到环境较暗的情况)
    • 不是该类型的二维码是否提示正确
    • 是否支持页面之间的链接跳转,跳转是否正确
    • 二维码有效期验证
    • 失效二维码是否可以扫
    • 修改与二维码相关的内容/跳转网址后,不重新生成二维码,扫码进入看信息是否更新
    展开全文
  • 二维码扫描知识

    2016-12-22 14:33:00
    二维码知识总结 01-二维码简介 1.概念 二维码:用某种特定的集合图形按照一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号的信息 生成二维码:根据给定的信息,将其按照二维码的编码方式生成一张图片 ...

    二维码知识点总结

    01-二维码简介

    1.概念

    • 二维码:用某种特定的集合图形按照一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号的信息
    • 生成二维码:根据给定的信息,将其按照二维码的编码方式生成一张图片
    • 读取二维码:识别二维码图像里面存储的数据

    2.使用场景

    • 信息获取(名片/WiFi密码/资料)
    • 手机电商(用户扫码/手机直接购物下单)
    • 加好友(QQ/微信/扫一扫加好友)
    • 手机支付(扫描商品二维码,通过银行或第三方支付提供的手机端通道完成支付)

    3.生成方式

    • 从iOS7开始集成了二维码的生成和读取功能
    • 此前被广泛使用的zbarsdk目前不支持64位处理器
    • 2015年2月1日起,不允许不支持64位处理器的APP上架

    4.二维码读取

    • 直接从图片中识别,最低支持iOS8.0
    • 利用摄像头扫描识别,需要真机设备

    02-生成/识别/读取二维码

    1.生成二维码

    • 导入CoreImage框架
      • 一些图片处理操作的功能,都是用这个框架实现,比如:滤镜效果/毛玻璃/美颜相机等
      • #import <CoreImage/CoreImage.h>
    • 通过滤镜CIFilter生成二维码
      1. 实例化二维码滤镜 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
      2. 恢复滤镜的默认属性 [filter setDefault];
      3. 将字符串转换成NSData NSData *data = [@"木喳喳的夏天" dataUsingEncoding:NSUTF8StringEncoding];
      4. 通过KVC设置滤镜inputMessage数据 [filter setValue:data forKey:@"inputMessage"];
      5. 获得滤镜输出的图像,大小默认是23*23 CIImage *outputImage = [filter outputImage];
      6. 将CIImage转换成UIImage,并放大显示 return [UIImage imageWithCIImage:outputImage scale:20.0 orientation:UIImageOrientationUp];
      7. 通过位图创建高清图片
    /**
         根据CIImage生成指定大小的高清UIImage
         :param: image 指定CIImage
         :param: size    指定大小
         :returns: 生成好的图片
         */
        private func createBigImage(image: CIImage, size: CGFloat) -> UIImage {
    
            let extent: CGRect = CGRectIntegral(image.extent)
            let scale: CGFloat = min(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent))
    
            // 1.创建bitmap;
            let width = CGRectGetWidth(extent) * scale
            let height = CGRectGetHeight(extent) * scale
            let cs: CGColorSpaceRef = CGColorSpaceCreateDeviceGray()!
            let bitmapRef = CGBitmapContextCreate(nil, Int(width), Int(height), 8, 0, cs, 0)!
    
            let context = CIContext(options: nil)
            let bitmapImage: CGImageRef = context.createCGImage(image, fromRect: extent)
    
            CGContextSetInterpolationQuality(bitmapRef,  CGInterpolationQuality.None)
            CGContextScaleCTM(bitmapRef, scale, scale);
            CGContextDrawImage(bitmapRef, extent, bitmapImage);
    
            // 2.保存bitmap到图片
            let scaledImage: CGImageRef = CGBitmapContextCreateImage(bitmapRef)!
    
            return UIImage(CGImage: scaledImage)
        }

    2.自定义二维码

    • 所谓自定义二维码,就是指给二维码添加一些图片(前景或背景图片),或者改变下颜色
    • 可以添加前景图片的前提是因为二维码具备一定的"容错率"
      • 如果二维码被部分遮挡,可以根据其他部分,计算出遮挡部分的内容;
      • 但是要保证三个角不能被遮挡;
      • 三个角用作扫描定位使用(可能用户倒着拍/斜着拍等)
    • 通过KVC设置滤镜的inputCorrectionLevel(容错率)
      • @"L",@"M",@"Q",@"H"中的一个
      • L水平:7%的字码可被修正
      • M水平:15%的字码可被修正
      • Q水平:25%的字码可被修正
      • H水平:30%的字码可被修正
    func createImage(bgImage: UIImage?, iconImage: UIImage?) -> UIImage?
    {
        if bgImage == nil || iconImage == nil
        {
            return nil
        }
        // 1.开启图片上下文
        UIGraphicsBeginImageContext(bgImage!.size)
        // 2.绘制背景
        bgImage!.drawInRect(CGRect(origin: CGPointZero, size: bgImage!.size))
        // 3.绘制图标
        let w:CGFloat = 50
        let h = w
        let x = (bgImage!.size.width - w) * 0.5
        let y = (bgImage!.size.height - h) * 0.5
        iconImage!.drawInRect(CGRect(x: x, y: y, width: w, height: h))
        // 4.取出图片
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        // 5.关闭上下文
        UIGraphicsEndImageContext()
    
        return newImage
    }
    

    3.识别二维码

    • 识别图片二维码
      1. 创建一个上下文 let context = CIContext()
      2. 创建一个探测器 let detector = CIDetector(ofType:CIDetectorTypeQRCode,context:context,option:[CIDetectorAccuracy:CIDetectorAccuracyHigh])
      3. 转换图片为CIImage let image = CIImage(CGImage:sourceImage.CGImage)
      4. 获取探测器识别的图像特征 let features = detector.featuresInImage(image)
      5. 遍历图片特征,获取数据
        • var tempArray = [String]()
        • for feature in features {}
        • let resultFeature: CIQRCodeFeature = feature as! CIQRCodeFeature
        • tempArray.append(resultFeature.messageString)
      6. 绘制识别到的二维码边框
    private class func drawRectInImage(qrFeature: CIQRCodeFeature, image: UIImage) -> UIImage
    {
        let size = image.size
        UIGraphicsBeginImageContext(size)
    
        image.drawInRect(CGRectMake(0, 0, size.width, size.height))
    
        // 反转坐标系(因为是别的二维码坐标是相对于图片的坐标, 坐标系是以, 左下角为0, 0, 所以需要上下翻转坐标系)
        let context = UIGraphicsGetCurrentContext()
        CGContextScaleCTM(context, 1.0, -1.0);
        CGContextTranslateCTM(context, 0, -image.size.height);
    
        let path: UIBezierPath = UIBezierPath(rect: qrFeature.bounds)
    
        UIColor.redColor().set()
        path.lineWidth = 6
        path.stroke()
    
        let resultImage = UIGraphicsGetImageFromCurrentImageContext()
    
        UIGraphicsEndImageContext()
        
        return resultImage 
    }
    

    3.2 扫描二维码

    • 二维码扫描动画
    • 二维码扫描功能
      1. 实例化拍摄设备
        • AVCaptureDevice *device = [AVCaputureDevice defalutDeviceWithMediaType:AVMediaTypeVideo];
      2. 设置输入设备
        • AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
      3. 设置元数据输出处理对象
        • 实例化拍摄元数据输出
        • AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
        • 设置输出数据代理
        • [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
      4. 添加拍摄会话
        • 实例化拍摄会话
        • AVCaptureSession *session = [[AVCaptureSession alloc] init];
        • 添加会话输入
        • [session addInput:input];
        • 添加会话输出
        • [session addOutput:output];
        • 设置输出数据类型,需要将元数据输出添加到会话后,才能指定元数据类型,否则报错
        • [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
      5. 视频预览图层(不是必须)
        • 实例化预览图层
        • AVCaptureVideoPreviewLayer *preview = [AVCaptureVideoPreviewLayer layerWithSession:_session];
        • preview.frame = self.view.bounds;
        • 将图层插入当前视图
        • [self.view.layer addSublayer:preview];
        • self.previewLayer = preview;
      6. 启动会话
        • [_session startRunning];
      7. 监听元数据处理后的结果
        • 当扫描到数据就会执行captureOutput:didOutputMetadataObjects:fromConnection
    • 二维码边框描绘
      • 提示:获取到二维码后,可以获得二维码的四个角,但是需要使用预览图层进行坐标转换
      • previewLayer.transformedMetadataObjectForMetadataObject(object as! AVMetadataObject)
      • 创建CAShapLayer,并设置path
    • 二维码扫描区域限定
      • 设置兴趣点
      • 注意:每个参数的取值都是对应的比例
      • 注意:坐标系是横屏状态下的坐标系
      • 而且值域范围是0-1
      • output.rectOfInterest = rect

    3.3 使用注意

    • 读取二维码需要导入AVFoundation框架
    • 利用摄像头识别二维码中的内容(模拟器不行)

    转载于:https://www.cnblogs.com/coderwjq/p/6211138.html

    展开全文
  • 二维码

    2019-05-16 13:49:17
    二维码的黑白 分别代表的是二进制的 1, 0 有不同的解构分布 识别信息

    二维码的黑白点  分别代表的是二进制的  1, 0

    有不同的解构分布   识别信息

     

    展开全文
  • 二维码本身就是一个URL,只是通过QR码的形式把URL和用户身份信息转换成二进制的0和1,二维码中黑色的色素块代表1,白色的色素块代表0,我们通过扫码,就获取了二维码中的URL。 全世界每天用掉100亿个二维码,那么...

    随着近年来移动互联网的飞速发展,二维码早已成为我们生活中不可或缺的一部分,无论是移动支付、乘坐地铁,甚至是我们日常工作的方方面面,都少不了二维码提供的便利。

    二维码本身就是一个URL,只是通过QR码的形式把URL和用户身份信息转换成二进制的0和1,二维码中黑色的色素块代表1,白色的色素块代表0,我们通过扫码,就获取了二维码中的URL。

    全世界每天用掉100亿个二维码,那么问题来了,如果用完该怎么办?
    在这里插入图片描述
    当然我们今天不是讨论这个问题,作为测试工程师,我们需要了解如何测试二维码?

    大体上,我们可以从功能测试、UI测试、性能测试、网络测试、兼容性测试、安全性测试等方面去测试。

    功能测试

    ① 扫描成功是否做出正确响应;
    ② 扫描失败是否有提示;
    ③ 扫码进入页面显示是否正确,跳转链接是否正确;
    ④ 保存扫码图片,是否支持长按图片识别进入;
    ⑤ 只扫描部分时,是否扫描成功;
    ⑥ 扫描模糊的二维码,能否扫描成功;
    ⑦ 扫描失效/过期的二维码,能否扫描成功;
    ⑧ 扫描涂改过的二维码,能否扫描成功;
    ⑨ 近距离/远距离扫描二维码,能否扫描;
    ⑩ 阴暗/正常/高亮环境下,二维码能否扫描成功;
    ⑪ 修改与二维码相关的内容/跳转网址后,不重新生成二维码,扫码进入看信息是否更新;
    ⑫ 扫码跳转过程中断测试(扫码时来电/来信息/邮件等);
    ⑬ 同时扫描多个二维码,能否扫描成功;
    ⑭ 多次扫描同一个码,能否扫描成功;
    ⑮ 多次扫描同一个二维码,跳转后的内容是否相同;
    ⑯ 扫码后,前后台切换,切换前后的内容是否一致;
    ⑰ 扫描过程中,是否可以取消退出扫描。
    在这里插入图片描述

    今天是五一放假前的一天,肩上背负着工作重任的你们,内心是不是被假期满满的占据,已经提前进入神游状态,灵魂飘到远方啦?

    以上仅列举功能测试点,预知更详尽的测试点,请扫描以下二维码,在后台回复"二维码测试",即可获取完整版的二维码测试点,快来扫我鸭~
    在这里插入图片描述

    展开全文
  • 解PnP问题时,用二维码的好处 二维码由黑白两色组成,容易通过对图像阈值处理而发现 二维码具有方向性(只要设计的不为中心对称...去掉二维码周围一圈,即保存为5*5的信息 计算5*5图像内的海明距离,和程序所设定要查找
  • 二维码技术知识搜集

    千次阅读 2016-02-02 16:35:05
    在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的...
  • 1.最简单的扫二维码获得信息。 首先,在网上找一个二维码生成网站,生成一个二维码,我用的是草料二维码,随便生成了一个二维码做测试。 就这个。 我搭建的界面如下: 如图可见,点击1中的“我扫一扫”,可以扫...
  • drawImage方法可以把图片画到canvas上,getImageData方法可以获得一个矩形区域所有像素信息,返回值的data属性是一个一维数组,储存了所有像素信息,一个像素信息会占四个元素,分别代表r,g,b和透明度。...
  • 微信小程序实例详解,扫描二维码获取信息

    万次阅读 多人点赞 2018-01-09 22:25:09
    1.最简单的扫二维码获得信息。 首先,在网上找一个二维码生成网站,生成一个二维码,我用的是草料二维码,随便生成了一个二维码做测试。 就这个。 我搭建的界面如下: 如图可见,点击1中的“我扫一扫”,...
  • JavaEE:12天掌握Java语言开发 - 使用java生成二维码图片 - 创客学院直播室​www.makeru.com.cn自从微信扫描出世,二维码扫描...二维码主要实现这两: 1.生成任意的二维码。 2.在二维码的中间加入图像。 一、准...
  • 需要多个客户扫二维码信息并提交后, 信息上传到本地的数据库的应用程序 要安全的 期待有哪位大侠能解决
  • 二维码原理

    2016-10-10 17:38:28
    1.二维码是一个携带信息的图形 2.三个为定位信息存放在中间部分 3.存放方式,二进制,黑块为1,白块为0的矩阵图 4.二维码扫描可使用第三方zxing框架
  • PHP二维码

    2019-08-06 21:02:34
    二维码是一个近几年来移动设备上超流行的一种编码方式,最早出现在20世纪20年代,到1988年才引入中国。现在,日常生活中更是随处...同时还具有对不同行的信息自动识别功能、及处理图形旋转变化二维码的优点 高...
  • c语言生成 二维码

    千次阅读 2019-11-04 10:03:16
    c语言生成 二维码 这是第一次 写文档也是自己做的一些项目的感触 就简单记录一下。 二维码的粗略信息 想要生成一个二维码,就必须准备好你生产的内容。...生产二维码信息 生产二维码需要信息 根据你要生产...
  • 二维码类型

    2014-04-18 11:14:31
    二维码可以分为堆叠式/行排式二维码和矩阵式二维码。它具有条码技术的一些共性...矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上用“”表示二进制“1”, 用“空”表示二进制“0”,“”和“空”的排列组成
  • 她平均每周光顾这家店三次,但也没记住老板的脸——只要扫描桌上的二维码,她就可以在一分钟内完成单和付款。 餐饮业正在被技术重塑:在过去,微信和支付宝只是帮助消费者简化了付款的程序,例如在一些熟食和水果...
  • 初探二维码

    2012-03-27 17:16:06
    二维码在交换信息时很有用,它主要分2个过程:1 编码 2解码。二维码可以以图片的形式存蓄任何文字的文本内容。 下面说一下特点: 1 容量大:一张二维码图片可以存上千字的内容。 2安全性:二维码在没有解码前仅凭...
  • 二维码浅析

    千次阅读 2014-03-05 11:31:13
    最近在学习关于二维码的一些东西,从网上找了以下知识,仅供参考。 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能...
  • 二维码简述

    千次阅读 2011-12-27 10:04:25
    二维码是一种能存储信息的特定格式图片。 技术解释: 二维码是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用(方、圆点或其他形状)的出现表示二进制“1”,的不出现...
  • H5 扫描二维码绑定设备信息

    千次阅读 2018-01-30 19:50:15
    主要分为以下几: 1,界面div部分详细如下,可参考: ...载入中... ;margin-top: 5px; display: none; float: left;margin-left: 10px;" />如无法扫描,请手动绑定 手动绑定 2,JS部分,也就是...
  • 使用zxing二维码

    2017-03-14 10:29:56
    0.二维码由来 二维码上有三个大方块和一个小方块 通过这个来...2.扫描二维码将文本信息拿取出来 调用二维码中的CaptureActivity这个类 这个类中会将二维码文本信息拿到 装在一个bundle中 key 是result Intent result
  • 该项目是thinkcmf二开,使用... * 该功能有点类似于电子价签,扫码后能看到商品信息 */ public function qrCode() { //查询要生成二维码的数据 $id = $this-&gt;request-&gt;param('id'); //接收参数 ...
  • 这两天对微信二维码比较感兴趣,所以就花了时间学习了一下,下面我将先介绍一下如何解析微信二维码内的信息。 直接上代码: import java.awt.image.BufferedImage; import java.io.File; import java.io....
  • 二维码学习总结

    千次阅读 2018-08-01 22:07:21
    这篇文章很详细地解释了二维码的生成方法,通过学习后大致总结出以下几。   1、协议(数据编码)  无论是二维码的生成还是解析,一个固定的编码协议是非常重要,而二维码最终的的数据格式大致可总结为:  ...
  • 二维码相关知识

    2017-04-26 22:23:00
     二维码的背景色的设置一定要比前景色和定位的颜色要浅 2. 包含的文字内容建议不超过150个汉字(为了低端手机也能扫描) 3. 制作带二维码图片时应该生成高纠错等级的图片,嵌入的图片不能超过二维码图案的30% ...
  • 码农那事儿关注我们,一起学习进步HTML5仿微信按住语音发送代码是一款手机端微信聊天语音发送话筒录音动画效果。手指按住说话,松开结束语音发送特效。HTML5仿微信按住语音发送代码是一款手机端微信聊天语音发送...
  • 二维码之介绍

    2017-10-03 10:19:06
    某种特定的几何图形按照一定规律在平面图分布的黑白相间的图形记录符号信息的图形,黑点代表的是1 白代表的是0 2.分类: 线性堆叠式二维码 PDF417、U1tracode、Code49、Code 16K 矩阵式二维码 Data Matrix、...
  • java二维码生成技术

    千次阅读 2019-06-27 18:06:47
     自从微信扫描出世,二维码扫描逐渐已经成为一种主流的信息传递和交换方式。下面就介绍一下我学习到的这种二维码生成方式。预计再过不久身份证户口本等都会使用二维码识别了,今天就做一个实验案例; 二维码主要...
  • 生成二维码名片

    2017-03-19 19:20:23
    填写信息生成二维码,扫码添加到手机通讯录 知识 内容显示部分采用毛玻璃效果 使用伪元素覆盖,并同时采用blur()滤镜 使用qrcode.js生成二维码 使用var qr = new QRCode(targId, info);实现 效果图代码 <!...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 656
精华内容 262
关键字:

二维码信息点