获取必不可少的工具类代码
imagetool: 图片转字符图片工具类,支持 Gif 动画、图片合并、图片加水印等图片处理其他工具类方法。详情请看https://gitee.com/xshuai/imagetool
获取必须的模板图
来源 百度贴吧。可能CSDN认为违规。就不方链接了。模板图作者我也不想这样
也可以直接下载作者下载好的,防止CSDN认为违规。大家可以点击链接下载
链接: https://pan.baidu.com/s/1fikKwLjJ96NXez7Cg1XGXw 提取码: rre7
编写代码
工具类里面该有的都有了。大家直接用就行,方法就不多多陈述了
package cn.xsshome.imagetool;
import cn.xsshome.imagetool.convert.ImageConvertUtil;
import cn.xsshome.imagetool.util.MergeImageUtil;
import cn.xsshome.imagetool.zoom.ZoomUtil;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
/**
* @author 小帅丶
* @className NationalFlageAvatarSample
* @Description 头像生成方法
* @Date 2021-09-29-16:46
**/
public class NationalFlagAvatarSample {
public static void main(String[] args) throws Exception{
long startTime = System.currentTimeMillis();
//背景图-微信头像 如果是获取微信用户的头像,把地址最后的132改成0即可获取高清头像图哦
BufferedImage src = ImageIO.read(new File("F:\\testimg\\132.jpg"));
//基于微信头像宽高进行缩放
ZoomUtil zoomUtil = new ZoomUtil(src.getWidth(),src.getHeight());
//模板图
BufferedImage nationalFlag = ImageIO.read(new File("F:\\testimg\\nationalflag.png"));
if(nationalFlag.getWidth()>src.getWidth()){
//对模板图进行缩放
nationalFlag = zoomUtil.resizeByWidth(src.getWidth(),
ImageConvertUtil.imageToBytes(nationalFlag,"png"),
"png");
}
//对于宽度大于804PX的头像没进行处理。可以对模板图进行无损放大 免费在线地址:https://ai.baidu.com/tech/imageprocess/image_quality_enhance
//合并后的图
BufferedImage image = MergeImageUtil.mergePendant(src, nationalFlag, 0, 0, 1);
//合并后的图存放路径
File file = new File("F:\\testimg\\share\\20210929.jpg");
ImageIO.write(image, "jpg", file);
long endTime = System.currentTimeMillis();
System.out.println("耗时:"+(endTime-startTime));
}
}