首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實現二維碼與背景圖片合成

     編輯:Java 相關知識

Java 二維碼嵌入背景圖片完整實作

應用場景

自動生成二維碼並嵌入現有背景模板,常用於海報生成、分享卡片等業務。

核心實作代碼

BufferedImage qrImage = ...; // 生成的二維碼圖片
BufferedImage bgImage = ImageIO.read(new File("背景圖片路徑")); // 讀取背景圖

Graphics2D g = bgImage.createGraphics();

// 計算二維碼在背景中的合適尺寸(不超過背景寬高的 50%)
int width = qrImage.getWidth() > bgImage.getWidth() * 5 / 10 
    ? bgImage.getWidth() * 5 / 10 : qrImage.getWidth();
int height = qrImage.getHeight() > bgImage.getHeight() * 5 / 10 
    ? bgImage.getHeight() * 5 / 10 : qrImage.getHeight();

// 計算居中座標
int x = (bgImage.getWidth() - width) / 2;
int y = (bgImage.getHeight() - height) / 2;

// 繪製二維碼到背景圖
g.drawImage(qrImage, x, y, width, height, null);

// 釋放資源
g.dispose();
bgImage.flush();
qrImage.flush();

// 輸出合成後的圖片
ImageIO.write(bgImage, "png", new File("輸出路徑/合成圖.png"));

關鍵點說明

  1. 尺寸控制:二維碼過大影響美觀,建議限制在背景圖 30%-50% 範圍內。
  2. 居中繪製:透過計算偏移量實現水平垂直居中。
  3. 資源釋放:及時調用 dispose()、flush() 避免記憶體洩漏。
  4. 二維碼生成:可結合 《Java 生成帶 Logo 多彩二維碼》 實現更豐富效果。

效果展示

二維碼合成背景圖效果

總結

利用 Java 2D API 實現二維碼與背景圖合成,核心在於 Graphics2D.drawImage() 的座標與尺寸計算,配合適當的資源管理,即可滿足大多數業務需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved