(zxing.net)二维码QR Code的简介、实现与解码

一、简介

二维码QR Code(Quick Response Code)是由Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。

二维码QR Code呈正方形,常见的是黑白两色。在3个角落,印有较小,像”回”字的的正方图案。这3个是帮助解码软件定位的图案,用户不需要对准,无论以任何角度扫描,数据仍可正确被读取。

由于QR Code码用特定的数据压缩模式表示汉字,它仅用13 bit可表示一个汉字,而PDF417、Data Martix等二维码没有特定的汉字表示模式,因此仅用字节表示模式来表示汉字,在用字节模式表示汉字时,需用16 bit(二个字节)表示一个汉字,因此QR Code码比其它的二维条码表示汉字的效率提高了20%。

QR Code码主要特点:

1、符号规格从版本1(21*21模块)到版本40(177*177模块),每提高一个版本,每边增加4个模块。

2、数据类型与容量(参照最大规格符号版本40-L级):

  • (1)、数字数据:7,089个字符;
  • (2)、字母数据: 4,296个字符;
  • (3)、8位字节数据: 2,953个字符;
  • (4)、汉字数据:1,817个字符。

3、数据表示方法:深色模块表示二进制"1",浅色模块表示二进制"0"。

4、纠错能力:

  • L级:约可纠错7%的数据码字;
  • M级:约可纠错15%的数据码字;
  • Q级:约可纠错25%的数据码字;
  • H级:约可纠错30%的数据码字。

5、结构链接(可选):可用1-16个QR Code码符号表示一组信息。每一符号表示100个字符的信息。

二、实现

    public ActionResult QR_CODE()
    {
        QrCodeEncodingOptions options = new QrCodeEncodingOptions();
        options.CharacterSet = "utf-8";
        options.DisableECI = true;
        options.ErrorCorrection = ErrorCorrectionLevel.M;
        options.QrVersion = 12;
        options.GS1Format = false;
        options.Width = 150;
        options.Height = 150;
        options.Margin = 1;

        BarcodeWriter writer = new BarcodeWriter();
        writer.Format = BarcodeFormat.QR_CODE;
        writer.Options = options;

        //如需设置图片为其它颜色,使用此段代码
        //BitmapRenderer renderer = new BitmapRenderer();
        //renderer.Foreground = Color.Black;
        //renderer.Background = Color.White;
        //writer.Renderer = renderer;

        Bitmap bmp = writer.Write("我是中国人");
        MemoryStream ms = new MemoryStream();
        bmp.Save(ms, ImageFormat.Png);
        ms.Flush();
        ms.Position = 0;
        return File(ms, "application/x-png");
    }

测试图像如下:

三、解码

原文地址:https://www.cnblogs.com/weiweixiang/p/10077257.html

时间: 2024-07-30 10:11:22

(zxing.net)二维码QR Code的简介、实现与解码的相关文章

二维码(QR Code)生成与解析

二维码(QR Code)生成与解析 写在前面 经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西.各种扫各种送,太泛滥了.项目中从没接触过二维码的东东,最近要使用,就扒了扒网络,发现关于解析二维码的类库还是非常多的,这里就选择一个做一个demo,玩玩. 一个例子 关于二维码的组件还是非常多的,你可以使用nuget选择一款使用就可以了. 生成二维码 // GET: Home public ActionResult Index() { QRCodeEncoder e

用ABAP 生成二维码 QR Code

除了使用我的这篇blogStep by step to create QRCode in ABAP Webdynpro提到的使用ABAP webdynpro生成二维码之外,也可以通过使用二维码在线生成网站提供的service来生成二维码. 二维码在线生成网站: http://www.makepic.com/qrcode.php 在网页上输入要生成的二维码数据源,校验级别和图片大小,点生成即可看到生成的二维码图片: 下面是用ABAP code 利用上述service生成二维码的代码: DATA:l

[C#]二维码(QR Code)生成与解析

写在前面 经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西.各种扫各种送,太泛滥了.项目中从没接触过二维码的东东,最近要使用,就扒了扒网络,发现关于解析二维码的类库还是非常多的,这里就选择一个做一个demo,玩玩. 一个例子 关于二维码的组件还是非常多的,你可以使用nuget选择一款使用就可以了. 生成二维码 // GET: Home public ActionResult Index() { QRCodeEncoder endocder = new QRCo

Atitit zxing二维码qr码识别解析

1.1. qr码识别解析 by zxing1 1.2. 解码lib:qrcode.jar  2 1.3. atitit.二维码生成总结java zxing 2 1.1. qr码识别解析 by zxing /AtiPlatf_ee/src/com/attilax/qrcode/qrcodex.java public static String decode(String imagePath) { String contents = null; MultiFormatReader formatRea

ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老美开发的,barcode4j对一维条形码处理的很好,而且支持的格式很多,当然也可以对二维码进行处理,效果个人感觉没有前两种好;ZXing对j2me,j2se,还有Android等支持也比较好,如果你是搞Android的或以后准备走Android,建议还是用zxing的比较好,毕竟都一个母亲(goole)生的,QRCode就不用说了吧,虽说技术无国界,但是国人还是有点.... 好,言归正传,java用ZXi

(转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老美开发的,barcode4j对一维条形码处理的很好,而且支持的格式很多,当然也可以对二维码进行处理,效果个人感觉没有前两种好;ZXing对j2me,j2se,还有Android等支持也比较好,如果你是搞Android的或以后准备走Android,建议还是用zxing的比较好,毕竟都一个母亲(gool

ZXing解析二维码

上一篇文件已经说过如何用ZXing进行生成二维码和带图片的二维码,下面说下如何解析二维码 二维码的解析和生成类似,也可以参考google的一个操作类 BufferedImageLuminanceSource类,该类可在google的测试包中找到,另外j2se中也有该类,你可以将该类直接拷贝到源码中使用,你也可以自己写个. import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.image.

【转】Android平台下利用zxing实现二维码开发

http://www.cnblogs.com/dolphin0520/p/3355728.html 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing进行二维码开发. 1.如何将zxing的Android源码导入工程. 在导入zxing的android源码之前,先去官方下载zxing的源码:http

Android平台下利用zxing实现二维码开发

http://www.cnblogs.com/dolphin0520/p/3355728.html 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing进行二维码开发. 1.如何将zxing的Android源码导入工程. 在导入zxing的android源码之前,先去官方下载zxing的源码:http