精华内容
下载资源
问答
  • 二维码介绍
    2021-05-30 15:34:07

    ZXing(Zebra Crossing)是Google开发的一个二维码解析和生成的开源库。
    ZXing GitHub地址
    引入

            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>3.3.0</version>
            </dependency>
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>javase</artifactId>
                <version>3.3.0</version>
            </dependency>
    
    
    public class QRCodeUtil {
        /**
         * 生成二维码
         * @param content   源内容
         * @param outputStream 输出流
         * @throws Exception
         */
        public static void createQRImage(String content, OutputStream outputStream) throws Exception {
            Hashtable hints = new Hashtable();
            // 指定纠错等级
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            hints.put(EncodeHintType.MARGIN, 1);
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300,
                    hints);
            int width = bitMatrix.getWidth();
            int height = bitMatrix.getHeight();
    
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
                }
            }
            // 存到磁盘
            ImageIO.write(image, "jpg", outputStream);
            outputStream.flush();
            outputStream.close();
        }
    
        public static void createQRImage2(String content,OutputStream outputStream) throws Exception {
            Hashtable hints = new Hashtable();
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            hints.put(EncodeHintType.MARGIN, 1);
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300,
                    hints);
            //生成png格式的图片保存到imgPath路径位置
            MatrixToImageWriter.writeToStream(bitMatrix, "jpg",outputStream);
            outputStream.flush();
            outputStream.close()
        }
        public static void createQRImage2(String content,File file) throws Exception {
            Hashtable hints = new Hashtable();
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            hints.put(EncodeHintType.MARGIN, 1);
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300,
                    hints);
            //生成png格式的图片保存到imgPath路径位置
            MatrixToImageWriter.writeToFile(bitMatrix, "jpg",file);
        }
        public static void main(String[] args) throws Exception {
            String codeUrl = "http://www.baidu.com";
            //使用订单号来作为二维码的图片名称
            File file = new File("E:\\","测试3" + ".jpg");
            FileOutputStream out=new FileOutputStream(file);
            createQRImage(codeUrl, out);
            System.out.println(file.delete());
        }
    
    }
    
    

    条形码有很多种类,二维(条形)码就是其中一种。表示内容也有不同,有的只能表示纯数字,不能表示字母。

    
    BarcodeFormat.CODE_128; // 表示高密度数据, 字符串可变长,符号内含校验码
    BarcodeFormat.CODE_39;
    BarcodeFormat.CODE_93;
    BarcodeFormat.CODABAR; // 可表示数字0 - 9,字符$、+、 -、还有只能用作起始/终止符的a,b,c d四个字符,可变长度,没有校验位
    BarcodeFormat.DATA_MATRIX;
    BarcodeFormat.EAN_8;
    BarcodeFormat.EAN_13;
    BarcodeFormat.ITF;
    BarcodeFormat.PDF417; // 二维码
    BarcodeFormat.QR_CODE; // 二维码
    BarcodeFormat.RSS_EXPANDED;
    BarcodeFormat.RSS14;
    BarcodeFormat.UPC_E; // 统一产品代码E:7位数字,最后一位为校验位
    BarcodeFormat.UPC_A; // 统一产品代码A:12位数字,最后一位为校验位
    BarcodeFormat.UPC_EAN_EXTENSION;
    
    

    参考:https://blog.csdn.net/liudongdong19/article/details/80147404
    https://blog.csdn.net/zhoumushui/article/details/51008264

    更多相关内容
  • 二维码介绍PPT下载,关键词:二维码介绍幻灯片下载,蓝色PPT背景,地球、手机幻灯片背景图片,动态、动画、互联网、网上支付PPT下载,商务PPT模板下载,PPT格式; 二维码介绍PPT下载,关键词:二维码介绍幻灯片下载...
  • 对常用二维码QRCode,DataMatrix,VeriCode,汉信码等常见二维码进行介绍,从多维度进行对比,比较分析,对其各自的应用领域与特性进行分析讲解

    一、常用二维码介绍

            常用二维码主要有QRCode和DataMatrix,分别是日本与美国发明的,不常用但是将兴起的有VeriCode和汉信码,前者为美国的,连规范都未公开的二维码标准,而汉信码,是中国由国标升级成国际标准的二维码规范。

            在中国,普通市民最常用的二维码其实就是QRCode,平时支付,微信,支付宝中的二维码,还有健康码等,生活中随处可见的就是此类。

            而DataMatrix主要在工业中常用,如PCB板行业,基本工业配件用于标识的ID,一般用DataMatrix码,与日常生活没有太多直接关系。

            VeriCode码平常更少见,因为它主要用于液晶行业,码尺寸小,平常生活中接触少。

            汉信码更少见,中国自由研发的,虽然成为了国际标准,然而起步晚,当前没有推广起来。

            以下是关于这四种常见二维码的多维度对比表格:

    二、常用二维码应用分析

     2.1QRCode

            QRCode为什么会广泛的应用于物流、支付与日常生活中呢,主要是因为其解码快,信息容量大,这一特性对物流行业、支付很重要,信息容量大对日常生活应用场景很重要。所以,你会发现我们日常生活接触到的二维码都是此类。

    2.2DataMatrix

            DataMatrix主要用于工业,PCB板的二维码主要都是此类码,为什么工业会选择DataMatrix呢?主要是码小,安全,最重要的是抗污染能力强,工业很多配件,给予打码的空间是有限的,如果像QRCode这样,大大的一个码,无处安放,同时工业上经常会有污损之类的问题,如果稍有刮花污损之类就读不出来,是很麻烦的,所以工业中的二维码主流都是DataMatrix。

    2.3VeriCode

            VeriCode码为什么会被液晶行业青睐呢?液晶行业特性,很多打码的位置非常小,没有足够的空间存放码,而VeriCode超级小、静音区小特性,能做到1*1mm,这一点,其他码都无法达到的。静音区是指码周边的留白,只要一个小方块的大小即可,而其他码一般要2~3个小方块大小,不然可能识别不出来,这个叫静音区,液晶行业,本来给予存放码的空间就小,周边还要留白,这个是无法满足要求的,而VeriCode恰好满足此要求。

            然而,VeriCode的规范不是公开的,专利在美国Veritec公司手里。

    2.4汉信码

            汉信码是中国自主研发的二维码标准,最大特色是对汉字的支持优秀,目前已经升级为国际标准,目前,推广度还有待大家共同努力。关于汉信码更详细说明点这里

    展开全文
  • 二维码介绍PPT下载.rar

    2019-07-16 11:39:17
    二维码介绍PPT下载,关键词:二维码介绍幻灯片下载,蓝色PPT背景,地球、手机幻灯片背景图片,动态、动画、互联网、网上支付PPT下载,商务PPT模板下载,PPT格式;
  • 码的组成读码的知识基础,码的类别区分,码密度计算
  • QR二维码介绍

    2014-08-09 12:10:51
    QR二维码介绍, 详细介绍了QR码的编码规则
  • 二维码介绍

    2017-09-22 09:51:52
    一、二维码的分类 二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码有着更高的数据...

    转自:http://www.cnblogs.com/magicsoar/p/4483032.html

    一、二维码的分类

    二维码,从字面上看就是用两个维度(水平方向和垂直方向)来进行数据的编码,条形码只利用了一个维度(水平方向)表示信息,在另一个维度(垂直方向)没有意义,所以二维码比条形码有着更高的数据存储容量。

    从形成方式上,二维码可以分为两类,

    1、堆叠式二维码:在一维条形码的基础上,将多个条形码堆积在一起进行编码,常见的编码标准有PDF417等

    image

                              图1 PDF417码示例

    2、矩阵式二维码:在一个矩阵空间中通过黑色和白色的方块进行信息的表示,黑色的方块表示1,白色的方块表示0,相应的组合表示了一系列的信息,常见的编码标准有QR 码,汉信码等

     image                  image

           图2 QR码示例                                  图3 汉信码示例

    PDF417由美国研发,在美国地区使用广泛;

    汉信码由中国自主研发,目前已在政府相关领域得到初步的使用;

    QR码由日本研发,目前很多的应用都是用QR码进行编码,译码。

    目前使用最广的是QR码,所以接下来的内容会对QR码进行讲解,下文中提到的二维码,指的就是QR码

    QR码分为40个版本,版本1由21x21个方块组成,每个版本增加4个方块,版本40由177x177个方块组成。每增加一个版本,QR码可储存的信息数量也随之增多。

    版本1的二维码最多可以储存25个字符或41个数字,而版本40的二维码最多可以储存4296个字符或7089个数字

    二、二维码的结构

    一个二维码可以分为两个部分,功能图形和编码区域

    image

                                             图4

    功能图形起到定位的作用

    位置探测图形:由三个黑白相间的大正方形嵌套组成,分别位于二维码左上角、右上角、左下角,目的是为了确定二维码的大小和位置。

    定位图形       :由两条黑白相间的直线组成,便于确定二维码的角度,纠正扭曲。

    校正图形       :仅在版本2以上存在,由三个黑白相间的小正方形嵌套组成,便于确定中心,纠正扭曲。

    数据区记录了具体的数据信息,纠错信息与版本信息。

    数据和纠错码:记录了数据信息和相应的纠错码,纠错码的存在使得当二维码的数据出现允许范围内的错误时,也可以正确解码。

    版本信息       :仅在版本7以上存在,记录具体的版本信息。

    格式信息       :记录使用的掩码和纠错等级。

    此外二维码的外围还留有一圈空白区,主要是为了便于识别而存在。

    三、数据编码与实例

    针对不同的数据,QR码设计了不同的数据编码编码方式,我们可以根据数据的种类选择合适的编码方式进行编码。

    数字编码(Numeric)        :可编码0-9,10个数字,如果需要编码的数字的个数不是3的倍数,最后剩下的1或2位数会被转成4或7bits,其它的每3位数字会根据不同版本被编成 10,12,14bits

    字符编码(Alphanumeric) :可编码0-9,大写的A-Z,以及9个其他的字符(space $ % * + – . / :);

    8位字节模式(8-bit Byte)     :可编码JIS X 0201的8位Latin/Kana字符集

    除此之外,QR还提供了其他的编码方式,每一个编码方式都有其独有的id进行标识,这些标识会记录在数据区的前端,使得解码器可以根据二维码使用的编码方式对数据进行解码

          image

                                      图5   一些编码方式及其标识

    纠错码

    二维码存在4个级别的纠错等级,每个纠错级别可修正的错误与标识见图6,纠错级别越高,可以修正的错误就越多,需要的纠错码的数量也变多,相应的可储存的数据就会减少,版本1的二维码在L级别下可储存25个字符,在H级别下只能储存10个字符。

              image

                                 图6

    下面给一个01234567在版本1下用数字编码(Numeric),选择的纠错级别是M的示例

    第一步,将定位图案放到二维码中

          image

                             图7

    第二步:进行数据编码

    根据图8,版本1下,采用Numeric Mode编码时,每三个数字需要10个bits进行标示

    image

                                                图8

    012 ->0000001100

    345 ->0101011001

    67 ->1000011

    组合起来为

    0000001100 0101011001 1000011

     

    在数据的头尾加上一些标准要求的信息

    数字个数 (8) = 0000001000

    编码格式      =0001

    终止符         =0000

    组合起来为

    0000001100 0101011001 1000011->

    0001 0000001000 0000001100 0101011001 10000110000

     

    按8bit一组重新排列,末尾不足的补零

    0001 0000001000 0000001100 0101011001 1000011 0000->

    00010000 00100000 00001100 01010110 01100001 10000000

     

    不足最大bit的添加补齐码(11101100 00010001),版本1 M下需要128bits

    00010000 00100000 00001100 01010110 01100001

    10000000->

    00010000 00100000 00001100 01010110 01100001

    10000000 11101100 00010001 11101100 00010001

    11101100 00010001 11101100 00010001 11101100

    00010001

    第三步:添加纠错码

    纠错码根据数据利用RS算法来进行计算,篇幅所限,这里就不具体讲解了,最终的结果如下:

    00010000 00100000 00001100 01010110 01100001

    10000000 11101100 00010001 11101100 00010001

    11101100 00010001 11101100 00010001 11101100

    00010001->

    00010000 00100000 00001100 01010110 01100001

    10000000 11101100 00010001 11101100 00010001

    11101100 00010001 11101100 00010001 11101100

    00010001 10100101 00100100 11010100 11000001

    11101101 00110110 11000111 10000111 00101100

    01010101

    第四步:将最终的数据编码按顺序放入二维码中

     image                               image

                          图9                                                                       图10

    从左下角开始,1为黑色,0为白色,按顺序依次填入二维码中

    第五步:添加格式信息和进行掩码运算

    得到的图像还需要对数据区进行掩码运算,掩码运算的目的是让图像中黑色和白色方块分布的更加均匀一些,便于解码

    有以下几种掩码运算,相应的标识和变换方式见图11,二维码的左上角的坐标为(0,0)

             image

                                                   图11

     

        image

                                  图12  坐标系和掩码运算的图案

    这里我们选择标识为011的掩码

    格式信息的组成为                       :纠错标识+掩码标识+BCH纠错码

    所以前面的纠错标识+掩码标识为:00011

    BCH纠错码计算为:

    image

    得到纠错码为                             :011 0101 1001

    格式信息为                                :00011 1101011001

    为了避免选择标识00的纠错类别和标识000的掩码运算,照成格式信息为全0的数字,所得的格式信息还要与101010000010010做异或运算

    000111101011001

    101010000010010   XOR

    101101101001011

    最终的格式信息为                      :101101101001011

    将格式信息放入二维码中       

            image

                              图13

    对加格式信息后的二维码 进行掩码运算

    得到的最终二维码,储存的数据信息是01234567

           image

                          图14

    整个流程见图15

        image
                                          图15


    四、二维码的安全知识

    虽然二维码本身承担的只是一些文本数据,但仍会导致一些安全问题

    1、攻击者将一些恶意网站或者一些恶意代码制作成二维码,用户扫描后,会自动下载一些恶意软件,或跳转到一些虚假网站给使用者造成危害,

    2、二维码内如果包含一些可执行的脚本,便可能导致xss攻击     如 http://www.wooyun.org/bugs/wooyun-2012-09145

    3、如果将一些敏感信息不加密而直接储存在二维码中,便会存在信息泄露的可能,比如11年火车票上的二维码就存在泄露使用者的身份证号码的问题。

    五、总结

    虽然我们在使用二维码的时候只需要用手机一扫即可,但二维码的编码和解码却包含了很多的步骤和很多的知识,此外二维码本身仅仅是数据的承载体,我们在使用时要针对一些敏感信息进行加密处理,防范潜在的攻击方式

     

    参考文献

    二维码的生成细节和原理  http://coolshell.cn/articles/10590.html#jtss-tsina

    QR二维码的攻击与防御   http://drops.wooyun.org/tips/160

    展开全文
  • 本文主要介绍ISO7 二维码的资料,这里整理了详细的使用方法,及简单示例代码,帮助大家学习参考,有需要的小伙伴可以参考下
  • 使用SkiaSharp.QrCode生成二维码介绍

    千次阅读 2022-01-24 23:01:26
    学习参考文献中的二维码生成包SkiaSharp.QrCode的使用方式

      微信公众号中看到一篇介绍C#跨平台生成二维码的文章《使用C#快速生成二维码 | 真正跨平台方案》(微信公众号中没有带链接,在网上找了一篇内容一模一样的)。文章中使用SkiaSharp.QrCode跨平台生成二维码。
      SkiaSharp是基于GoogleSkia图形库(skia.org)的,NET跨平台二维图形库,其中的API支持跨移动端、服务器和桌面渲染图形。关于SkiaSharp的详细介绍及类型说明详见参考文献1和4。本文主要根据参考文献2中的代码进行学习,并在windows平台上验证SkiaSharp.QrCode的使用方式。

      创建Winform项目,并添加skiasharp.qrcode的包引用(具体添加方式见《VS2019中通过NuGet添加包依赖项》)。
      首先照着参考文献2中的代码将二维码输入到文件中,代码逻辑比较简单,主要用到的类包括QRCodeGenerator、SKImageInfo、SKCanvas 、SKImage ,具体的类型介绍请见参考文献4.

    	 QRCodeGenerator generator = new QRCodeGenerator();
         QRCodeData qr = generator.CreateQrCode(txtRawValue.Text, ECCLevel.H);
    
          // 创建一个Canvas
          SKImageInfo info = new SKImageInfo(512, 512);
    	  using (SKSurface surface = SKSurface.Create(info))
          {
              SKCanvas canvas = surface.Canvas;
    
              // 渲染二维码到Canvas
              canvas.Render(qr, info.Width, info.Height);
    
              // 输出到文件
              using (SKImage image = surface.Snapshot())
              {
    	          using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
    	          {
    	              using (var stream = File.OpenWrite(@"QRCode.png"))
    		          {
    		              data.SaveTo(stream);
    		          }
    	          }	          
              }
          }
    

    在这里插入图片描述

      除了输出到本地文件,还可以将二维码图形显示在控件中,主要使用的类型包括QRCodeGenerator、SKImageInfo、SKCanvas和SKImage ,详细代码及效果图如下:

    		using (SKSurface surface = SKSurface.Create(info))
            {
                SKCanvas canvas = surface.Canvas;
    
                // 渲染二维码到Canvas
                canvas.Render(qr, info.Width, info.Height);
    
                // 输出到图形控件
                using (SKImage image = surface.Snapshot())
                {
                    picQrCode.Image = Image.FromStream(image.Encode(SKEncodedImageFormat.Png, 100).AsStream());
                }
            }
    

    在这里插入图片描述
      用微信的扫一扫功能扫描上述二维码,显示的结果如下。
    在这里插入图片描述
      SkiaSharp支持跨平台,功能强大,本文主要学习参考文献中的代码示例并进行技术验证,后续还会继续学习SkiaSharp相关类型的使用方式。

    参考文献:
    [1]https://github.com/mono/SkiaSharp
    [2]https://blog.csdn.net/zls365365/article/details/122315085
    [3]https://www.nuget.org/packages/SkiaSharp.QrCode/
    [4]https://docs.microsoft.com/en-us/dotnet/api/skiasharp?view=skiasharp-2.80.2

    展开全文
  • QRCode二维码介绍及常用控件,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。
  • 扫码支付这种新的支付方式,造就二维码满天飞的现象。那么让我们分析一下如何使用 Python 来生成二维码图片。 1.二维码 二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向...
  • 草料二维码功能介绍

    千次阅读 2021-05-07 13:53:00
    1.想知道:草料二维码功能介绍 二.参考 1.草料二维码 https://cli.im/tools 总结:good 三.文件传输小工具:测试时间:20210507 1.运行效果 里面会传递:手机本地/微信 微信:传递不了照片,发现...
  • Java后台直接生成二维码介绍

    万次阅读 2017-12-19 11:45:17
    Java后台直接生成二维码 ...所以在这里介绍在后来生成二维码的方式。 2、不善于文字描述,直接上代码了。 import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.image.Bu
  • 一、二维码简介_二维码基本概念_二维码基本原理 1.二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,...
  • 人机交互和机器视觉是目前市场上非常火的两个点。智能家居、工业控制、楼宇自动化等很多场景都能适用。目前市场上针对这两个领域的解决方案都离不开AI控制和图像处理,然而AI控制需要云端支持,对设备网络环境要求较...
  • 二维码简单介绍

    千次阅读 2019-08-15 12:17:10
    简单介绍二维码二维码其实就是一种编码技术,只是这种编码技术是用在图片上了,将给定的一些文字,数字转换为一张经过特定编码的图片,而解析二维码则相反,就是将一张经过编码的图片解析为数字或者文字。...
  • 二维码之元宵节快乐

    热门讨论 2021-02-26 16:57:20
    于是想变个花样怎么来,于是想到了利用二维码编写元宵节祝福语。之前从来没有接触过二维码的生成,所以这次特地看了看,实现起来还是很简单的。话不多说,让我们进入正文。 【方式一】适合没有java基础的,不过这个...
  • php二维码生成

    2020-12-19 12:40:50
    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * ...
  • 功能介绍: 可以通过页面上传Excel表格,批量生成二维码,并下载生成二维码图片。
  • 二维码服务介绍.pptx

    2021-10-06 21:52:31
    二维码服务介绍.pptx
  • 二维码介绍: 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。 更多...
  • 二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf二维码智能门禁介绍.pdf
  • 二维码智能门禁介绍.docx二维码智能门禁介绍.docx二维码智能门禁介绍.docx二维码智能门禁介绍.docx二维码智能门禁介绍.docx二维码智能门禁介绍.docx二维码智能门禁介绍.docx二维码智能门禁介绍.docx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,568
精华内容 37,427
关键字:

二维码介绍