在一个图片上画一个二维码
import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; public class QRCodePainter { public static void main(String[] args) { String backgroundImageFile = "background.jpg"; String qrCodeContent = "Hello, World!"; try { // 加载背景图片 BufferedImage image = ImageIO.read(new File(backgroundImageFile)); // 创建二维码 QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(qrCodeContent, BarcodeFormat.QR_CODE, 200, 200); // 绘制二维码到图片中心 int xPos = (image.getWidth() - bitMatrix.getWidth()) / 2; int yPos = (image.getHeight() - bitMatrix.getHeight()) / 2; for (int x = 0; x < bitMatrix.getWidth(); x++) { for (int y = 0; y < bitMatrix.getHeight(); y++) { image.setRGB(xPos + x, yPos + y, bitMatrix.get(x, y) ? Color.BLACK.getRGB() : Color.WHITE.getRGB()); } } // 保存带有二维码的新图片 String outputFile = "output.jpg"; ImageIO.write(image, "jpg", new File(outputFile)); System.out.println("成功生成带有二维码的图片:" + outputFile); } catch (IOException | WriterException e) { e.printStackTrace(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人