`
lizhuohuang
  • 浏览: 117633 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

二维码生成zxing包

阅读更多

 

   zxing 二维生成器,支撑条形码

  需要俩个表

  1.javase 支撑包

  2.zxing 主包

 

官方地址 http://code.google.com/p/zxing/

package com.google.test;

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.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class ZxingEncoderHandler {

    /**
     * 编码
     *
     * @param contents
     * @param width
     * @param height
     * @param imgPath
     */
    public void encode(String contents, int width, int height, String imgPath) {
        Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
        // 指定纠错等级
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        // 指定编码格式
        hints.put(EncodeHintType.CHARACTER_SET, "GBK");
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height,hints);
            MatrixToImageWriter.writeToFile(bitMatrix, "png", new File(imgPath));

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
   
      /**解码
     * @param imgPath
     * @return String
     */ 
    public String decode(String imgPath) { 
        BufferedImage image = null; 
        Result result = null; 
        try { 
            image = ImageIO.read(new File(imgPath)); 
            if (image == null) { 
                System.out.println("the decode image may be not exit."); 
            } 
            LuminanceSource source = new BufferedImageLuminanceSource(image); 
            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); 
 
            Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); 
            hints.put(DecodeHintType.CHARACTER_SET, "GBK"); 
 
            result = new MultiFormatReader().decode(bitmap, hints);//decode(bitmap, hints); 
            return result.getText(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        return null; 
    } 
 

    /**
     * @param args
     */
    public static void main(String[] args) {
       
        String imgPath = "D:\\zx\\二维码\\zxing.png";
        String contents = "http://baidu.com";
        int width = 300, height = 300;
        ZxingEncoderHandler handler = new ZxingEncoderHandler();
        //handler.encode(contents, width, height, imgPath);
        System.out.println("Michael ,you have finished zxing encode.");
         
            String decodeContent = handler.decode(imgPath); 
            System.out.println("解码内容如下:"); 
            System.out.println(decodeContent); 
            System.out.println("Michael ,you have finished zxing decode."); 
    }
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics