【Java】【无损放大】抖音国旗渐变头像生成
用户已被禁言 发布于2021-09 浏览:3981 回复:0
1
收藏

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

https://gitee.com/xshuai/imagetool

获取必须的模板图

链接: 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));
    }
}

 

收藏
点赞
1
个赞
TOP
切换版块