Java快速生成二维码(内附代码)

要加上core.jar这个jar包才行哦!!

里面生成的二维码,颜色是可以改变的哦!!

 

下面是源码:

package com;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat; 
import com.google.zxing.EncodeHintType; 
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix; 

public class testQR {
	   
	@SuppressWarnings("static-access")
	public static void main(String[] args) {
		String adress = "http://blog.csdn.net/itzhangdaopin";
		testQR get = new testQR();
		get.picture(adress);
		System.out.println("执行成功!!!");
	}
    /**
     * @param args
     * @return 
     * @throws Exception 
     */ 
    @SuppressWarnings({ "rawtypes", "unchecked" })
	protected static void picture(String adress){ 
         
        int width = 300; 
        int height = 300; 
        //二维码的图片格式 
        String format = "gif"; 
        Hashtable hints = new Hashtable(); 
        //内容所使用编码 
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); 
        try {
			BitMatrix bitMatrix = new MultiFormatWriter().encode(adress, 
			        BarcodeFormat.QR_CODE, width, height, hints); 
			//生成二维码 
			File outputFile = new File("d:"+File.separator+"news.gif"); 
			testQR.writeToFile(bitMatrix, format, outputFile);
		} catch (WriterException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} 
    } 
    private static final int BLACK = 0xFF000000; 
    private static final int WHITE = 0xFFFFFFFF;
    
    public static BufferedImage toBufferedImage(BitMatrix matrix) { 
        int width = matrix.getWidth(); 
        int height = matrix.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, matrix.get(x, y) ? BLACK : WHITE); 
          } 
        } 
        return image; 
      } 
       
         
      public static void writeToFile(BitMatrix matrix, String format, File file) 
          throws IOException { 
        BufferedImage image = toBufferedImage(matrix); 
        if (!ImageIO.write(image, format, file)) { 
          throw new IOException("Could not write an image of format " + format + " to " + file); 
        } 
      } 
    
}
posted @ 2022-01-27 18:36  zhangdaopin  阅读(416)  评论(0编辑  收藏  举报