java进行多个照片合并操作

做项目的时候,涉及到把一个团体的用户头像合并成团体照片,在网上找了一些图片合成的例子,觉得不太适合,后来自己重写了一个,可以实现自动排版,数量不够的话进行默认图片补充,
package com.xzst.ewms.util;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Iterator;


public class PhotoUtil {
    static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
    static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
    final static String photoX = "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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值