使用java进行图片覆盖合成,增加文字并解决emoji不显示问题

使用java实现图片上增加图片和文字等操作。

  • 使用思路是在一张底图上进行图片覆盖和增加文字
  • 图片方面实现坐标、尺寸修改、圆角等功能。为了解决性能问题增加了图片缓存。同时使用弱引用解决OOM。保证了效率和安全性
  • 文字方面实现坐标、字体、颜色、居中等功能。解决了emoji表情符显示异常的问题,实现和前端类似的文字过长隐藏为“…”
  • 对于可能会扩展的功能点,带有TODO进行备注
package cn.dong.processing;

import cn.dong.processing.bo.ImageUnit;
import cn.dong.processing.bo.TxtUnit;
import cn.dong.processing.bo.UnitInfo;
import cn.dong.processing.worker.WorkerExecute;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @Author: dong
 * @Date: 2023/4/13 14:15
 */
public class TestClass {

    public static void main(String[] args) {
        ImageUnit main = new ImageUnit();
//        main.setResourceType(2);
//        main.setValue("C:\\Users\\14910\\Desktop\\ditu.png");
        main.setValue("https://img-blog.csdnimg.cn/7f4381f6318b4cf6bdcc01900e3c9b23.png");
        // 设置覆盖的图片
        ImageUnit tu1 = new ImageUnit();
//        tu1.setResourceType(2);
//        tu1.setValue("C:\\Users\\14910\\Desktop\\tu1.png");
        tu1.setValue("https://profile.csdnimg.cn/1/D/5/1_weixin_42645678");
        tu1.setRadius(720);
        tu1.setX(50);
        tu1.setY(50);
        List<UnitInfo> list = new ArrayList<>();
        list.add(tu1);
        // 设置文字
        TxtUnit txtUnit = new TxtUnit();
        // 昵称😄
        txtUnit.setValue("昵称\uD83D\uDE04");
        txtUnit.setSize(20);
        txtUnit.setX(100);
        txtUnit.setY(200);
        list.add(txtUnit);
        WorkerExecute.overlayImage(main,list,"C:\\Users\\14910\\Desktop\\tu2.png");
    }
}

运行效果:
在这里插入图片描述
完整代码地址:
gitee
github

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值