純Java實現微信朋友圈分享圖

1.實現分享圖的效果java

enter image description herelinux

2.開發環境git

2.1 JDKgithub

  • oracle‘s jdk 1.8以上
    2.2 字體sql

  • 若選擇了微軟雅黑字體又是代碼部署到Linux,則須要安裝微軟雅黑字體,字體安裝方式自行google
    1. 加載背景

3.1 加載背景圖小程序

這是使用白色框底來做背景圖1.
java code //這裏從項目resources加載背景圖,讀文件到輸入流,代碼做了簡列 InputStream background = null BufferedImage zoomPicture = ImageIO.read(background);架構

  1. 圓頭像的實現

4.1 頭像裁剪併發

頭像裁剪成半徑oracle

//頭像半徑
public static final int PROFILE_RADIUS = 80;
// 2. 頭像裁剪成圓形
BufferedImage roundedImage = SharedImageUtils.createRoundedImage(new URL(userProfileUrl).openStream(),
SharedImageUtils.PROFILE_RADIUS);
4.2 背景圖上繪畫頭像分佈式

繪畫位置

/ 要放置的頭像y座標 /
public static final int PROFILE_Y = 1056;
/ 要放置的頭像X座標 /
public static final int PROFILE_X = 90;
//頭像旁邊附帶文字(ps:字體是微軟雅黑,linux不具有有,須要安裝,)
BufferedImage profileImage = SharedImageUtils.mergePicture(zoomPicture,
roundedImage,
nickName + " 爲你推薦網批貨源",
SharedImageUtils.PROFILE_X,
SharedImageUtils.PROFILE_Y,
SharedImageUtils.PROFILE_RADIUS,
SharedImageUtils.PROFILE_RADIUS);

  1. 商品圖案的顯示

5.1 繪畫的位置和長寬

public static final int COPYWRITER_X = 150;
/ 商店圖案Y位置 /
public static final int SHOP_PIC_Y = 70;
/商店圖案位置/
public static final int SHOP_PIC_X = 93;
/ 商店圖案寬度 /
public static final int SHOP_PIC_WIDTH = 900;
/ 商店圖案長度 /
public static final int SHOP_PIC_LENGTH = 950;
5.2 繪畫圖案

shopImage = SharedImageUtils.mergePicture(profileImage, shopImage, null,
SharedImageUtils.SHOP_PIC_X,
SharedImageUtils.SHOP_PIC_Y,
SharedImageUtils.SHOP_PIC_WIDTH, SharedImageUtils.SHOP_PIC_LENGTH);

  1. 文案的顯示

6.1 文案繪畫的位置與字體大小

BufferedImage textImage = SharedImageUtils.drawTextInImage(shopImage, "檔口: " + shopName, 150, 1200);
//添加文案
BufferedImage mergeImage = SharedImageUtils.drawTextInImage(textImage, "地址: " + shopAddr, 150, 1280);

  1. 二維碼的顯示

7.1 二維碼的大小與位置

/ 要放置的二維碼寬度 /
public static final int QRCODE_WIDTH = 230;
/ 要放置的二維碼長度 /
public static final int QRCODE_LENGTH = 230;
/ 要放置的二維碼Y位置 往下爲大值,往上爲小值 /
public static final int QRCODE_Y = 1070;
/要放置的二維碼X位置 往下爲大值,往上爲小值 /
public static final int QRCODE_X = 740;
7.2 二維碼的繪畫

BufferedImage shopQrBuffer = ImageIO.read(new URL(shopQrUrl));
mergeImage = SharedImageUtils.mergeQrcode(mergeImage,
shopQrBuffer,
"掃描或長按小程序碼",
SharedImageUtils.QRCODE_X,
SharedImageUtils.QRCODE_Y,
SharedImageUtils.QRCODE_WIDTH,
SharedImageUtils.QRCODE_LENGTH);

  1. 最終的分享圖

// 5. 生成分享圖
ImageIO.write(mergeImage, "jpg", response.getOutputStream());

  1. 源碼 歡迎工做一到五年的Java工程師朋友們加入Java羣: 741514154
    羣內提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用本身每一分每一秒的時間來學習提高本身,不要再用"沒有時間「來掩飾本身思想上的懶惰!趁年輕,使勁拼,給將來的本身一個交代!

https://github.com/SteamPako/sharedImagas.git

相關文章
相關標籤/搜索