二维码 

  1. 二维码的概念  
       
    二维条码/二维码是用某种特定的集合图形按照一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的图形
  2. 二维码的起源
         二维码技术诞生于20世纪40年代,但得到实际应用和迅速发展还是在近20年间。在通用商品条码的应用系统中,最先采用的是一维码,国外对二维码技术的研究始于20世纪80年代,在二维码符号表示技术研究方面,已研制出多种码制,常见的有PDF417,QR Code,Code 49,Code 16K,Code One等。这些二维码的密度都比传统的一维码有了较大的提高。专家介绍说,在二维码标准化研究方面,国际自动识别制造商协会(AIM)、美国标准化协会(ANSI)已完成了PDF417,QR Code,Code 49,Code 16K,Code One等码制的符号标准。在二维码设备开发研制、生产方面,美国、日本等国的设备制造商生产的识读设备、符号生成设备,已广泛应用于各类二维码应用系统。

         3.二维码的分类

      1.线性堆叠式二维码

2.矩阵式二维码

3.邮政码

         4.二维码的优缺点

      优点:

       1.高密度编码,信息容量大

       2.编码范围广

       3.容错能力强

       4.译码可靠性高

       5.可引入加密措施

       6.低成本,易制作,持久耐用 

        缺点:

       1.二维码技术成为手机病毒、钓鱼网站传播的渠道

       2.信息泄露

     5.二维码特点
       

6.三种实现制作二维码

方法一:借助第三方jar:zxing

  1. 先到官网下载zxing-zxing压缩文件,并解压(网址:htto://github.com/zxing/)
  2. 获得zxing.jar包。这里可以先在myeclipes中新建一个java项目,将zxing-zxing-3.3.0\core\src\main\java\com的com文件夹

    与zxing-zxing-3.3.0\javase\src\main\java\com的com文件夹拷进src项目下,点击Export导出jar包,命名为zxing.jar包

  3.生成二维码

     新建一个java项目,并新建一个lib文件夹,将zxing.jar包copy进lib文件夹

     /**

  * 生成二维码

   * @author 佳先森

   *

   */

  public class CreateQRCode {

      public static void main(String[] args) {

        int width=300;

        int height=300;

      String format="png";

       String content="www.baidu.com";

         //定义二维码的参数

       HashMap hints=new HashMap();

      hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

       //设置错误等级:L为最小,M为中,Q偏大,H最大,等级越大,所存储内容越小

        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);

       //设置四周边距

       hints.put(EncodeHintType.MARGIN, 2);

       //生成二维码

        try {

          BitMatrix bitMatrix=new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height,hints);

          Path file=new File("D:/zwing/img.png").toPath();

          MatrixToImageWriter.writeToPath(bitMatrix, format, file);

      } catch (Exception e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

        }

      }

     }

    4.解析二维码

    /**

    * 解析二维码

    * @author 佳先森

     *

     */

    public class ReadQRCode {

        public static void main(String[] args) {

      MultiFormatReader formatReader=new MultiFormatReader();

      File file=new File("D:/zwing/img.png");

      BufferedImage image;

      try {

        image = ImageIO.read(file);

        //定义二维码的参数

         HashMap hints=new HashMap();

        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

        BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));

        Result result=formatReader.decode(binaryBitmap);

        System.out.println("解析结果如下:"+result.toString());

        System.out.println("二维码格式类型:"+result.getBarcodeFormat());

        System.out.println("二维码文本内容:"+result.getText());

      } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

    }

  

  }

  }

    5.在指定的文件夹下可以看到所生成的二维码

 

        方法二:借助qecode.jar包(这里不演示)

        方法三:JavaScript

  1. 先到官网下载jquery-qrcode压缩文件(网址:https://github.com/jeromeetienne/jquery-qrcode)
  2. 新建一个java-web项目,并在WebRoot下新建一个js文件夹,将解压后的文件夹的jquery.qrcode.min.js放进js文件,再另外下载好的jquery 放进js文件夹
  3. 制作一个显示二维码的jsp界面

    1.导入两个js文件

    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.8.2.js"></script>

       <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.qrcode.min.js"></script>

    2.编写生成二维码代码

   <body>

    <h3>生成的二维码如下</h3>

     <div id="qrcode"></div>

     <script type="text/javascript">

      jQuery('#qrcode').qrcode("http://www.baidu.com");

      </script>

   </body>

    4.通过浏览器输入域名访问查看二维码

    7.扩展:

    1.注意访问的内容写法

    若写成:www.baidu.com  只能视为文本

    若写成: http://www.baidu.com   直接通过链接进入官网

2.实现二维码实现二维码扫描名片,得遵守VCard标准

基于java生成二维码的更多相关文章

  1. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  2. java 生成二维码、可带LOGO、可去白边

      1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...

  3. java 生成二维码后叠加LOGO并转换成base64

      1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception { String dat ...

  4. java生成二维码打印到浏览器

    java生成二维码打印到浏览器   解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxin ...

  5. 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...

    版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...

  6. java生成二维码(需导入第三方ZXing.jar包)

    //这个类是用来解析,通过图片解析该图片的网页链接是什么 package util; import java.awt.Graphics2D;import java.awt.geom.AffineTra ...

  7. JAVA生成二维码图片代码

    首先需要导入 QRCode.jar 包 下载地址看这里   http://pan.baidu.com/s/1o6qRFqM import java.awt.Color;import java.awt. ...

  8. java生成二维码图片

    1.POM文件引入 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core& ...

  9. java生成二维码的三个工具

    1.  使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode ...

随机推荐

  1. macaca web(4)

    米西米西滴,吃过中午饭来一篇,话说,上回书说道macaca 测试web(3),参数驱动来搞,那么有小伙本又来给雷子来需求, 登录模块能不能给我给重新封装一下吗, 我说干嘛封装,现在不挺好,于是乎,接着 ...

  2. 1092: 最大价值(dollars) 算法 动态规划

    题目地址:http://www.hustoj.com/oj/problem.php?id=1092 题目描述 Dave以某种方法获取了未来几天美元对德国马克的兑换率.现在Dave只有100美元,请编程 ...

  3. 嵌套ajax 页面卡死的问题

    问题:要一个AJAX中的回调函数中又进行了一个AJAX调用,并且这个AJAX是在一个循环调用的,不论设置async属性是true和false页面卡死. 解决方法:async属性都设为true,不用循环 ...

  4. ueditor ie8兼容性问题

    ie8情况下,在进入加载有uEditor编辑器页面时候,不显示工具栏,会提示ueditor 缺少对象或者出现错误   1.引用Ueditor的js 的时候用 绝对路径       网上搜出来的一种解决 ...

  5. (5)ES6解构赋值-函数篇

    函数参数的解构赋值 function sum(x, y) { return x + y; } sum(1,2); //解构赋值 function sum([x, y]) { return x + y; ...

  6. 团队作业7---Alpha冲刺值事后诸葛

    一.设想和目标 1.我们的软件要解决什么问题? 解决教师和助教对实验报告查重的问题,拥有两个用户:1.教师或助教:查看学生实验报告的重复率:4.学生:上传实验报告. 2.是否定义得很清楚?是否对典型用 ...

  7. 结对作业1----基于GUI的四则运算生成器

    组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...

  8. 201521123060《Java程序设计》第2周学习总结

    1. 本周学习总结 a.进一步熟悉了Eclipse的使用和java程序的编写: b.学习了java数据的基本类型:整数类型,浮点类型等: c.学习了算数运算符,赋值运算符,位运算符,关系运算符,逻辑运 ...

  9. 201521123069 《Java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. (1)我们可以利用堆栈追踪来获得异常发生的根源(堆栈追踪信息最顶层). (2)自定义异常:不是由Java系统 ...

  10. 201521123004 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 注意: notify()/notifyAll()方法和wait()方法都只能在被声明为synchronized的方 ...