【Java】渐变头像生成-代码实现

获取必不可少的工具类代码

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));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小帅丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值