最近有一个业务需求,生成微信小程序二维码,中间的logo变成用户上传的logo,下方添加上一行文字
网上有一些图片覆盖或者添加文字的代码,但是没有两种情况都进行的代码,对找到的代码进行了一些拼凑踩了一些坑最终完成了需求,生成二维码,中间logo改变为用户上传的图片,二维码下方添加上一行文字。
/**
* 将酒店二维码,酒店logo,酒店名合并到一张图片中。
* @param hotelName 酒店名
* @param codeImg 酒店二维码
* @param logoPath logo路径
* @param finallyPath 存储路径
* @param width 图片宽度
* @param height 图片高度
*/
public static boolean addWordAndLogo(String hotelName, InputStream codeImg, String logoPath, String finallyPath, int width, int height){
try {
//二维码的宽高
int codeImageWidth = 430;
int codeImageHeight = 430;
//logo的宽高
int logoImageWidth = 140;
int logoImageHeight = 140;
// 水平居中 x轴需要偏移的量
int xPath = (width-codeImageWidth)/2;
Image image = ImageIO.read(codeImg);
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
//构建一个传入宽高的白色背景
g2.setBackground(Color