业务需求:
在推送商品给买家的时候,可能会推送多个商品,每个商品对应一张图片,现在只需要发送一条消息,那么就需要将多张图片组合成一张自定义大小的图片。
1、举例
尺寸:648*300
尺寸:1080*454
尺寸:600*300
尺寸:800*500
如果传进来了两张图片,那么合成自定义大小的二宫格图片,如果传进来四张图片,合成自定义大小的四宫格图片(九宫格等等的可以再自己增加一下
)
2、尝试先等比缩小或放大图片,然后组合(测试后发现好像不太行)
- 1、先尝试生成图片自定义大小的缩略图
/**
* 生成缩略图
*
* @param imgsrc 图片路径
* @param imgdist 输出路径
* @param widthdist 缩放后图片长
* @param heightdist 缩放后图片宽
*/
public static void reduceImg(String imgsrc, String imgdist, int widthdist, int heightdist) {
try {
File srcfile = new File(imgsrc);
if (!srcfile.exists()) {
return;
}
Image src = javax.imageio.ImageIO.read(srcfile);
BufferedImage tag= new BufferedImage(widthdist, heightdist, BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream out = new FileOutputStream(imgdist);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(tag);
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
try {
ImageUtils.reduceImg("/Users/weiwanxi/Do