zoukankan      html  css  js  c++  java
  • 生成二维码返回二维码图片base64

     1 import com.google.zxing.BarcodeFormat;
     2 import com.google.zxing.EncodeHintType;
     3 import com.google.zxing.MultiFormatWriter;
     4 import com.google.zxing.WriterException;
     5 import com.google.zxing.client.j2se.MatrixToImageWriter;
     6 import com.google.zxing.common.BitMatrix;
     7 import sun.misc.BASE64Encoder;
     8 import java.io.ByteArrayOutputStream;
     9 import java.io.IOException;
    10 import java.util.HashMap;
    11 import java.util.Map;
    12 
    13 public final class QrCodeUtils {
    14 
    15     /**
    16      * 生成二维码Png图片的Base64
    17      *
    18      * @param content 二维码内容
    19      * @param width   宽
    20      * @param height  高
    21      * @return 二维码Png图片的Base64
    22      */
    23     public static String generateQrCodeBase64(String content, int width, int height) {
    24         //设置图片的文字编码以及内边框
    25         Map<EncodeHintType, Object> hints = new HashMap<>();
    26         //编码
    27         hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    28         //边框距
    29         hints.put(EncodeHintType.MARGIN, 0);
    30 
    31         return generateQrCodeBase64(content, width, height, hints);
    32     }
    33 
    34     /**
    35      * 生成二维码Png图片的Base64
    36      *
    37      * @param content 二维码内容
    38      * @param width   宽
    39      * @param height  高
    40      * @param hints   自定义提供给编码器的其他参数
    41      * @return 二维码Png图片的Base64
    42      */
    43     public static String generateQrCodeBase64(String content, int width, int height, Map<EncodeHintType, Object> hints) {
    44         final BitMatrix bitMatrix;
    45         String qrCode = "";
    46         try {
    47             bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
    48         } catch (WriterException e) {
    49             return qrCode;
    50         }
    51         try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
    52             MatrixToImageWriter.writeToStream(bitMatrix, "PNG", outputStream);
    53             byte[] bytes = outputStream.toByteArray();
    54             // 2、将字节数组转为二进制
    55             BASE64Encoder encoder = new BASE64Encoder();
    56             qrCode = encoder.encodeBuffer(bytes).trim();
    57         } catch (IOException e) {
    58                 e.printStackTrace();
    59         }
    60         return qrCode;
    61     }
    62 }
  • 相关阅读:
    5 Longest Palindromic Substring(easy)
    4 Median of Two Sorted Arrays(medium)
    前言
    3 Longest Substring Without Repeating Characters(medium)
    JavaScript&jQuery学习笔记
    禅道、jenkins部署记录
    jenkins部署自动化项目备注
    pytest
    我的第一个py爬虫-小白(beatifulsoup)
    单元测试python unittest
  • 原文地址:https://www.cnblogs.com/sunxun001/p/13085285.html
Copyright © 2011-2022 走看看