2016年7月25日 星期一

Qrcode 建立




使用Google zxing.EncodeHintType
 下載的Jar檔理論上只要下載core(核心就好)

package com.joey.test;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.CharacterSetECI;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class Test {
 public static void main(String[] args){
  BufferedImage buggimg = new BufferedImage(1200, 1200, BufferedImage.TYPE_INT_RGB);
  //指定寫出的資料夾  可由設定檔設定 位置
  File outFule = new File("D:/Qrcode.png");
  //建立QRCODE 相關設定。
  Hashtable hitmap = new Hashtable();
  QRCodeWriter qrwrite = new QRCodeWriter();
  hitmap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
  //建立圖片的繪版
  Graphics2D g2d = buggimg.createGraphics();
  
  g2d.setColor(Color.WHITE);
  g2d.fillRect(0,0,1200,1200);
  g2d.setColor(Color.black);
   try {
   //取得圖片的 點 的大小 圖片大小設定 1200 1200 px s 圖片
   BitMatrix x = qrwrite.encode("yourMassage", BarcodeFormat.QR_CODE, 1200, 1200,hitmap);
   for(int i =0;i<1200;i++){
    for(int j=0;j<1200;j++){
     if(x.get(i, j)){
      g2d.fillRect(i, j, 1, 1);
     }
    }
   }
   //寫出圖片..
   ImageIO.write(buggimg,"png", outFule);
  } catch (Exception e) {
   e.printStackTrace();
  }


沒有留言:

張貼留言