bufferedimage生成的图片模糊_Java保真组合图片以及生成缩略图

业务需求:在推送商品给买家的时候,可能会推送多个商品,每个商品对应一张图片,现在只需要发送一条消息,那么就需要将多张图片组合成一张自定义大小的图片。

1、举例

尺寸:648*3002ca3b02d8654c8c598ca4cc2e589a253.png尺寸:1080*4540564be2d2f0286d0390f711b363dac06.png尺寸:600*300b348d2f8ea6a552badad4d76a18a5e02.png尺寸:800*5001ff6fad75aeaaca4422ac94f8c0f3970.png

如果传进来了两张图片,那么合成自定义大小的二宫格图片,如果传进来四张图片,合成自定义大小的四宫格图片(九宫格等等的可以再自己增加一下)

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值