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 }
  • 相关阅读:
    Best Time to Buy and Sell Stock III
    Valid Palindrome
    Longest Substring Without Repeating Characters
    Copy List with Random Pointer
    Add Two Numbers
    Recover Binary Search Tree
    Anagrams
    ZigZag Conversion
    Merge k Sorted Lists
    Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/sunxun001/p/13085285.html
Copyright © 2011-2022 走看看