zoukankan      html  css  js  c++  java
  • java zxing生成二维码

    package zxing.test;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.WriterException;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.apache.commons.codec.binary.Base64;
    
    /**
     * @作者 yan
     * @创建日期 
     * @版本 V1.0
     * @描述 
     */
    public class QrCodeUtil {
        
        /**
         * 生成二维码,返回二维码Base64编码
         * @param content
         * @param size
         * @param imgFormt
         * @return 
         */
        public static String createQrCodeBase64(String content, int size, String imgFormt){
            ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
            
            try {
                Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
                hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
                hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
                BitMatrix bitMatrix = new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE, size, size, hints);
                MatrixToImageWriter.writeToStream(bitMatrix, imgFormt, baos);
                
            } catch (WriterException ex) {
                Logger.getLogger(QrCodeUtil.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(QrCodeUtil.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            byte result [] = baos.toByteArray();
            
            return Base64.encodeBase64String(result);
        }
    
        /**
         * 生成二维码,保存到output
         * @param output
         * @param content
         * @param size
         * @param imgFormt
         * @return 
         */
        public static boolean createQrCode(OutputStream output, String content, int size, String imgFormt){
            
            try {
                Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
                hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
                hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
                BitMatrix bitMatrix = new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE, size, size, hints);
                MatrixToImageWriter.writeToStream(bitMatrix, imgFormt, output);
                
                return true;
            } catch (WriterException ex) {
                Logger.getLogger(QrCodeUtil.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(QrCodeUtil.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            return false;
        }
    }

    jar:

    zxing-core-3.2.0.jar

    zxing-javase-3.2.0.jar

  • 相关阅读:
    HDU 3415 Max Sum of Max-K-sub-sequence 最长K子段和
    Android Fragment 真正彻底的解决(下一个)
    【数据分析面试题】一个 面试题,我的回答
    Swift初体验(两)
    MyEclipse10.0 集成 SVN
    CFileDialog 打开文件夹文件 保存文件夹文件
    基于thinkphp的uploadify上传图功能
    近20家银行手机银行签名被非法滥用风险分析
    设计模式【6】:适配器模式【接口适配】
    【学习笔记】编译原理-有限自己主动机
  • 原文地址:https://www.cnblogs.com/yshyee/p/8611896.html
Copyright © 2011-2022 走看看