利用谷歌zxing生成二维码

1.在maven中添加谷歌zxing jar的依赖

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.0.0</version>
</dependency>
 
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.0.0</version>
</dependency>

2.代码

package com.royalnu.origin.module.ori.utils;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Hashtable;
import javax.imageio.ImageIO;
import org.springframework.beans.factory.annotation.Value;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;


public class QrCodeUtil {
	
	private static final String CHARSET = "utf-8";  
        private static final String FORMAT_NAME = "JPG";  
    
    /** 
     * 生成带二维码,并保存到磁盘 
     * @param content   源内容 
     * @param imgPath   生成二维码保存的路径 
     * @param needCompress  是否要压缩 
     * @param number  编号(以此命名图片) 
     * @return      boolean值
     * @throws Exception 
     */ 
    @SuppressWarnings({ "rawtypes", "unchecked", "unused" })
	public static Boolean createImage(String content, String imgPath,String number,Integer qrCodeSize,boolean needCompress) throws Exception {  
        Hashtable hints = new Hashtable();  
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);  
        hints.put(EncodeHintType.CHARACTER_SET, CHARSET);  
        hints.put(EncodeHintType.MARGIN, 1);  
        BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize,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);  
            }  
        }  
        String fileName =number+ ".jpg";
        File file = new File(imgPath + "/" + fileName);
        if(!file.exists()){
            file.mkdirs();
        }
        return  ImageIO.write(image, FORMAT_NAME, file);   
    }  
  
 
//    public static void main(String[] args) throws Exception {  
//        
//    	QrCodeUtil util = new QrCodeUtil();
//          
//        //生成不带logo 的二维码  
//        String textt = "http://www.baidu.com";  
//        util.createImage(textt, "d:\\", "345", true);  
//          
//   
//    }  
	
}

参考资料:http://blog.csdn.net/wangnan537/article/details/50353174

                  http://tec.5lulu.com/detail/110d4n2ehcg9a857d.html

猜你喜欢

转载自391321729.iteye.com/blog/2348657