Class QrCodeKit

java.lang.Object
org.miaixz.bus.extra.qrcode.QrCodeKit

public class QrCodeKit extends Object
基于Zxing的二维码工具类,支持:
  • 二维码生成和识别,见BarcodeFormat.QR_CODE
  • 条形码生成和识别,见BarcodeFormat.CODE_39等很多标准格式
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Constructor Details

    • QrCodeKit

      public QrCodeKit()
  • Method Details

    • generateAsBase64DataUri

      public static String generateAsBase64DataUri(String content, QrConfig qrConfig, String imageType)
      生成 Base64 编码格式的二维码,以 String 形式表示

      输出格式为: data:image/[type];base64,[data]

      Parameters:
      content - 内容
      qrConfig - 二维码配置,包括宽度、高度、边距、颜色等
      imageType - 图片类型(图片扩展名),见ImageKit
      Returns:
      图片 Base64 编码字符串
    • generatePng

      public static byte[] generatePng(String content, int width, int height)
      生成PNG格式的二维码图片,以byte[]形式表示
      Parameters:
      content - 内容
      width - 宽度
      height - 高度
      Returns:
      图片的byte[]
    • generatePng

      public static byte[] generatePng(String content, QrConfig config)
      生成PNG格式的二维码图片,以byte[]形式表示
      Parameters:
      content - 内容
      config - 二维码配置,包括宽度、高度、边距、颜色等
      Returns:
      图片的byte[]
    • generate

      public static File generate(String content, int width, int height, File targetFile)
      生成二维码到文件,二维码图片格式取决于文件的扩展名
      Parameters:
      content - 文本内容
      width - 宽度
      height - 高度
      targetFile - 目标文件,扩展名决定输出格式
      Returns:
      目标文件
    • generate

      public static File generate(String content, QrConfig config, File targetFile)
      生成二维码到文件,二维码图片格式取决于文件的扩展名
      Parameters:
      content - 文本内容
      config - 二维码配置,包括宽度、高度、边距、颜色等
      targetFile - 目标文件,扩展名决定输出格式
      Returns:
      目标文件
    • generate

      public static void generate(String content, int width, int height, String imageType, OutputStream out)
      生成二维码到输出流
      Parameters:
      content - 文本内容
      width - 宽度
      height - 高度
      imageType - 图片类型(图片扩展名),见ImageKit
      out - 目标流
    • generate

      public static void generate(String content, QrConfig config, String imageType, OutputStream out)
      生成二维码到输出流
      Parameters:
      content - 文本内容
      config - 二维码配置,包括宽度、高度、边距、颜色等
      imageType - 图片类型(图片扩展名),见ImageKit
      out - 目标流
    • generate

      public static BufferedImage generate(String content, int width, int height)
      生成二维码图片
      Parameters:
      content - 文本内容
      width - 宽度
      height - 高度
      Returns:
      二维码图片(黑白)
    • generate

      public static BufferedImage generate(String content, QrConfig config)
      生成二维码或条形码图片 只有二维码时QrConfig中的图片才有效
      Parameters:
      content - 文本内容
      config - 二维码配置,包括宽度、高度、边距、颜色等
      Returns:
      二维码图片(黑白)
    • encode

      public static com.google.zxing.common.BitMatrix encode(CharSequence content, QrConfig config)
      将文本内容编码为条形码或二维码
      Parameters:
      content - 文本内容
      config - 二维码配置,包括宽度、高度、边距、颜色、格式等
      Returns:
      BitMatrix
    • decode

      public static String decode(InputStream qrCodeInputstream)
      解码二维码或条形码图片为文本
      Parameters:
      qrCodeInputstream - 二维码输入流
      Returns:
      解码文本
    • decode

      public static String decode(File qrCodeFile)
      解码二维码或条形码图片为文本
      Parameters:
      qrCodeFile - 二维码文件
      Returns:
      解码文本
    • decode

      public static String decode(Image image)
      将二维码或条形码图片解码为文本
      Parameters:
      image - Image 二维码图片
      Returns:
      解码后的文本
    • decode

      public static String decode(Image image, boolean isTryHarder, boolean isPureBarcode)
      将二维码或条形码图片解码为文本 此方法会尝试使用HybridBinarizerGlobalHistogramBinarizer两种模式解析 需要注意部分二维码如果不带logo,使用PureBarcode模式会解析失败,此时须设置此选项为false。
      Parameters:
      image - Image 二维码图片
      isTryHarder - 是否优化精度
      isPureBarcode - 是否使用复杂模式,扫描带logo的二维码设为true
      Returns:
      解码后的文本
    • decode

      public static String decode(Image image, Map<com.google.zxing.DecodeHintType,Object> hints)
      将二维码或条形码图片解码为文本 此方法会尝试使用HybridBinarizerGlobalHistogramBinarizer两种模式解析 需要注意部分二维码如果不带logo,使用PureBarcode模式会解析失败,此时须设置此选项为false。
      Parameters:
      image - Image 二维码图片
      hints - 自定义扫码配置,包括算法、编码、复杂模式等
      Returns:
      解码后的文本
    • toImage

      public static BufferedImage toImage(com.google.zxing.common.BitMatrix matrix, int foreColor, Integer backColor)
      BitMatrix转BufferedImage
      Parameters:
      matrix - BitMatrix
      foreColor - 前景色
      backColor - 背景色(null表示透明背景)
      Returns:
      BufferedImage
    • generateAsSvg

      public static String generateAsSvg(String content, QrConfig qrConfig)
      Parameters:
      content - 内容
      qrConfig - 二维码配置,包括宽度、高度、边距、颜色等
      Returns:
      SVG矢量图(字符串)
    • toSVG

      public static String toSVG(com.google.zxing.common.BitMatrix matrix, QrConfig config)
      BitMatrix转SVG(字符串)
      Parameters:
      matrix - BitMatrix
      config - QrConfig
      Returns:
      SVG矢量图(字符串)
    • generateAsAsciiArt

      public static String generateAsAsciiArt(String content, QrConfig qrConfig)
      生成ASCII Art字符画形式的二维码
      Parameters:
      content - 内容
      qrConfig - 二维码配置,仅宽度、高度、边距配置有效
      Returns:
      ASCII Art字符画形式的二维码
    • toAsciiArt

      public static String toAsciiArt(com.google.zxing.common.BitMatrix bitMatrix, QrConfig qrConfig)
      BitMatrix转ASCII Art字符画形式的二维码
      Parameters:
      bitMatrix - BitMatrix
      qrConfig - QR设置
      Returns:
      ASCII Art字符画形式的二维码