`
kingtai168
  • 浏览: 26484 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 编写二维码

 
阅读更多

下载QRCode.jar

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

import com.swetake.util.Qrcode;

 

/**

 * 二维码生成器

 * @blog http://sjsky.iteye.com

 * @author Michael

 */

public class QRCodeEncoderHandler {

 

    /**

     * 生成二维码(QRCode)图片

     * @param content

     * @param imgPath

     */

    public void encoderQRCode(String content, String imgPath) {

        try {

 

            Qrcode qrcodeHandler = new Qrcode();

            qrcodeHandler.setQrcodeErrorCorrect('M');

            qrcodeHandler.setQrcodeEncodeMode('B');

            qrcodeHandler.setQrcodeVersion(7);

 

            System.out.println(content);

            byte[] contentBytes = content.getBytes("gb2312");

 

            BufferedImage bufImg = new BufferedImage(140, 140,

                    BufferedImage.TYPE_INT_RGB);

 

            Graphics2D gs = bufImg.createGraphics();

 

            gs.setBackground(Color.WHITE);

            gs.clearRect(0, 0, 140, 140);

 

            // 设定图像颜色> BLACK

            gs.setColor(Color.BLACK);

 

            // 设置偏移量 不设置可能导致解析出错

            int pixoff = 2;

            // 输出内容> 二维码

            if (contentBytes.length > 0 && contentBytes.length < 120) {

                boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);

                for (int i = 0; i < codeOut.length; i++) {

                    for (int j = 0; j < codeOut.length; j++) {

                        if (codeOut[j][i]) {

                            gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);

                        }

                    }

                }

            } else {

                System.err.println("QRCode content bytes length = "

                        + contentBytes.length + " not in [ 0,120 ]. ");

            }

 

            gs.dispose();

            bufImg.flush();

 

            File imgFile = new File(imgPath);

 

            // 生成二维码QRCode图片

            ImageIO.write(bufImg, "png", imgFile);

 

        } catch (Exception e) {

            e.printStackTrace();

        }

 

    }
    /**

     * 生成二维码(QRCode)图片

     * @param content

     * @param imgPath

     */
   
    public void encoderQRCode(String content, String imgPath,String ccpath) {
     
     try {
      
      
      
      Qrcode qrcodeHandler = new Qrcode();
      
      qrcodeHandler.setQrcodeErrorCorrect('M');
      
      qrcodeHandler.setQrcodeEncodeMode('B');
      
      qrcodeHandler.setQrcodeVersion(7);
      
      
      
      System.out.println(content);
      
      byte[] contentBytes = content.getBytes("gb2312");
      
      
      
      BufferedImage bufImg = new BufferedImage(140, 140,
        
        BufferedImage.TYPE_INT_RGB);
      
      
      
      Graphics2D gs = bufImg.createGraphics();
      
      
      
      gs.setBackground(Color.WHITE);
      
      gs.clearRect(0, 0, 140, 140);
      
      
      
      // 设定图像颜色> BLACK
      
      gs.setColor(Color.BLACK);
      
      
      
      // 设置偏移量 不设置可能导致解析出错
      
      int pixoff = 2;
      
      // 输出内容> 二维码
      
      if (contentBytes.length > 0 && contentBytes.length < 120) {
       
       boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
       
       for (int i = 0; i < codeOut.length; i++) {
        
        for (int j = 0; j < codeOut.length; j++) {
         
         if (codeOut[j][i]) {
          
          gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
          
         }
         
        }
        
       }
       
      } else {
       
       System.err.println("QRCode content bytes length = "
         
         + contentBytes.length + " not in [ 0,120 ]. ");
       
      }
      
      BufferedImage image = ImageIO.read(new File(ccpath));
      gs.drawImage(image,55,55,null);
      
      gs.dispose();
      
      bufImg.flush();
      
      
      
      File imgFile = new File(imgPath);
      
      
      
      // 生成二维码QRCode图片
      
      ImageIO.write(bufImg, "png", imgFile);
      
      
      
     } catch (Exception e) {
      
      e.printStackTrace();
      
     }
     
     
     
    }

 

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        String imgPath = "D:/aa/QRCode.png";

 

        String content = "Hello 大大、小小,welcome to QRCode!"

                + "\nMyblog [ www.xxx.com ]"

                + "\nEMail [ xxx@gmail.com ]"
                + "\nTwitter [ @suncto ]";

 

        QRCodeEncoderHandler handler = new QRCodeEncoderHandler();

        handler.encoderQRCode(content, imgPath);

 

        System.out.println("encoder QRcode success");

    }

}

分享到:
评论

相关推荐

    二维码 java编写

    用Java生产二维码超简单~~~ Qrcode qrcode=new Qrcode();qrcode.setQrcodeVersion(8);//0~40 qrcode.setQrcodeEncodeMode('B'); qrcode.setQrcodeErrorCorrect('H');//L M Q H

    java编写二维码的生成代码

    在Java编程环境中,生成二维码是一项常见的任务,尤其在移动应用、网页链接分享或者电子票务等领域广泛应用。二维码(Quick Response Code)是一种二维条形码,能够存储大量的信息,包括文字、数字、URL等。本篇将...

    基于Java的二维码识别系统.pdf

    ### 基于Java的二维码识别系统知识点概述 #### 二维码技术的演进与应用 一维条码自诞生以来,极大地推动了生产和生活方式的变革,然而其信息存储量有限、过度依赖数据库等缺陷,逐渐无法满足现代社会对信息记录与...

    java编写二维码所需jar包

     从QR Code码的英文名称Quick Response Code可以看出,超高速识读特点是QR Code码区别于四一七条码、Data Matrix等二维码的主要特性。由于在用CCD识读QR Code码时,整个QR Code码符号中信息的读取是通过QR Code码...

    java生成二维码(文档+代码)

    本主题聚焦于使用Java编程语言生成二维码,包括相关的库和实现步骤。以下是关于"java生成二维码(文档+代码)"的详细知识讲解: 1. **Zxing库**: Zxing(又称为ZXing,读作“zebra crossing”,斑马线的意思)是...

    java生成二维码并保存到本地

    接下来,我们编写代码来生成二维码: 1. 创建一个`BitMatrix`对象,它是二维码的基础结构,表示黑白二值矩阵。 2. 使用`MultiFormatWriter`类的`encode`方法,将要编码的数据转换为`BitMatrix`对象。 3. 调用`...

    java 实现二维码批量打印

    3. **编写二维码生成代码**: 使用ZXing提供的`com.google.zxing.client.j2se.MatrixToImageWriter`类,可以将数据编码为一个图像,这便是二维码。例如: ```java Map, ErrorCorrectionLevel&gt; hints = new HashMap...

    编写Java工程生成二维码

    这个名为“编写Java工程生成二维码”的项目显然关注于使用Java编程语言来实现二维码编码功能。ZXing,全称“Zebra Crossing”,是一个开源的、多平台的条形码和二维码读取与生成库。下面我们将深入探讨这个Java工程...

    Java生成二维码图片

    2. 编写代码生成二维码:创建一个BufferedImage对象,然后使用MultiFormatWriter和BitMatrix来生成二维码数据,最后将BitMatrix转换为BufferedImage对象。以下是一个简单的示例: ```java import ...

    java中二维码打印问题

    在Java Web开发中,生成和打印二维码是一项常见的需求,尤其在物联网、移动支付等领域应用广泛。本主题将详细讲解如何在Java环境中实现二维码的生成与打印。首先,我们需要理解二维码的基本概念,它是一种二维条码,...

    java 生成二维码 且中间 带图片(logo) 的方法

    接下来,我们编写Java代码来生成二维码并插入图片。以下是一个简单的示例: ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter...

    java生成二维码图片

    接下来,我们将编写代码来生成二维码。以下是一个简单的示例,展示了如何使用ZXing生成二维码图片: ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import ...

    JAVA生成二维码方法

    ### JAVA生成二维码方法详解 #### 一、二维码简介 二维码是一种在二维空间内存储信息的条形码形式,由黑白相间的图案组成。它能够存储大量数据,包括文本、URL等,并且支持多种编码方式。二维码的设计巧妙地利用了...

    java实现二维码制作

    接下来,我们将编写一个简单的Java程序来生成二维码。首先,我们需要创建一个`MultiFormatWriter`对象,它可以处理多种编码格式,包括二维码。然后,使用`BitMatrix`来存储二维码的二进制数据。最后,通过`Image...

    java生成二维码史上最全案例

    总结,Java生成二维码的流程包括选择合适的库(如Zxing)、添加依赖、编写编码和解码逻辑、处理参数以及可能的美化操作。通过理解这些概念和实践,你将能够灵活地在Java项目中实现二维码的生成和解析。在这个史上最...

    Java生成和解析二维码1.2(QRCode)

    本代码为二维码生成和解析的Java实现代码,包括三个类和一个QRCode的jar包(一个jar包用于生成二维码,一个jar包用于读取二维码尤其用于读取的jar包不好下载,所以就一起放进来了,方便大家学习使用),一个生成...

    Java 生成二维码源码

    Java作为一种广泛应用的编程语言,提供了多种库和方法来实现二维码的生成。以下是对"Java 生成二维码源码"这一主题的详细解释。 首先,我们需要了解Java中生成二维码的基本流程: 1. **引入依赖**:生成二维码通常...

    java 生成二维码

    在Java编程语言中,生成二维码是一项常见的需求,特别是在移动应用、数据分享和物联网(IoT)场景中。本文将深入探讨如何使用Java实现二维码生成,以及相关的关键知识点。 首先,我们要知道二维码(Quick Response ...

    java编写微信二维码支付源码

    总的来说,实现Java编写的微信二维码支付源码,需要理解微信支付API的使用,掌握网络请求、XML/JSON处理、签名算法、二维码生成以及数据库操作等相关技术。通过合理的架构设计和严谨的编码实践,可以构建出安全可靠...

    Java生成二维码

    2. **编写代码**:创建二维码的核心代码如下: ```java import com.google.zxing.*; import com.google.zxing.client.j2se.MatrixToImageConfig; import com.google.zxing.client.j2se.MatrixToImageWriter; import ...

Global site tag (gtag.js) - Google Analytics