码迷,mamicode.com
首页 > 编程语言 > 详细

基于java生成二维码

时间:2017-10-07 14:45:53      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:eclipe   jar   ima   int   能力   好的   密度   logs   导入   

                                                                                                           二维码 

  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生成二维码

标签:eclipe   jar   ima   int   能力   好的   密度   logs   导入   

原文地址:http://www.cnblogs.com/cailijia52o/p/7634343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!