生成器工具类
以下是一个简单的 QRCodeUtil 示例,这个工具类使用了 zxing 库来生成二维码图片:
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class QRCodeUtil {
private static final String DEFAULT_IMAGE_FORMAT = "PNG";
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 300;
public static BufferedImage createQRCode(String content) throws Exception {
return createQRCode(content, DEFAULT_WIDTH, DEFAULT_HEIGHT);
}
public static BufferedImage createQRCode(String content, int width, int height) throws Exception {
BitMatrix matrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, width, height);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, matrix.get(x, y) ? Color.BLACK.getRGB() : Color.WHITE.getRGB());
}
}
return image;
}
public static byte[] toByteArray(BufferedImage image, String format) throws IOException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, format, os);
return os.toByteArray();
}
public static String toBase64String(BufferedImage image, String format) throws IOException {
byte[] bytes = toByteArray(image, format);
return java.util.Base64.getEncoder().encodeToString(bytes);
}
}
这个 QRCodeUtil
工具类包含了以下方法:
-
createQRCode(String content)
:生成默认宽度和高度的二维码图片,并返回BufferedImage
对象。 -
createQRCode(String content, int width, int height)
:根据指定的宽度和高度生成二维码图片,并返回BufferedImage
对象。 -
toByteArray(BufferedImage image, String format)
:将BufferedImage
对象转换为字节数组,并指定图像格式。 -
toBase64String(BufferedImage image, String format)
:将BufferedImage
对象转换为 Base64 编码的字符串,并指定图像格式。
您可以根据需要使用这些方法来生成二维码图片,并将其转换为字节数组或 Base64 字符串。请确保在使用完 BufferedImage
对象后关闭相关资源,避免资源泄漏。
测试
下面是一个使用 QRCodeUtil
的案例,展示了如何生成二维码并将其保存为图片文件以及转换为 Base64 字符串:
public class QRCodeExample {
public static void main(String[] args) {
String content = "https://example.com"; // 要生成二维码的内容
try {
// 生成二维码图片
BufferedImage qrCodeImage = QRCodeUtil.createQRCode(content);
// 将二维码保存为图片文件
String imagePath = "path/to/save/image.png"; // 设置保存路径和文件名
File outputFile = new File(imagePath);
ImageIO.write(qrCodeImage, "PNG", outputFile);
System.out.println("二维码已保存为图片:" + imagePath);
// 将二维码转换为 Base64 字符串
String base64Image = QRCodeUtil.toBase64String(qrCodeImage, "PNG");
System.out.println("Base64 图片数据:" + base64Image);
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个案例中,我们首先指定要生成二维码的内容为 https://example.com
。然后,我们调用 createQRCode(content)
方法生成二维码图片,并保存到指定的路径。
接着,我们调用 toBase64String(qrCodeImage, "PNG")
方法将二维码图片转换为 Base64 字符串,其中第二个参数表示图像格式(这里使用 PNG 格式)。
最后,我们通过打印输出来展示保存为图片文件的路径和转换后的 Base64 图片数据。文章来源:https://www.toymoban.com/news/detail-558777.html
请确保在运行示例代码之前,根据实际情况修改保存路径和文件名。另外,需要添加相关的依赖包(如 zxing 库)以使代码能够顺利编译和运行。文章来源地址https://www.toymoban.com/news/detail-558777.html
到了这里,关于二维码生成器简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!