zoukankan      html  css  js  c++  java
  • Java 动态图片压缩

    今天收到领导的一个任务,说是图片太大导致服务器那边无法解析,要求图片大小大于102*126就压缩大小为102*126.同时文件是以Base64字符串的形式传过来的。具体压缩方法如下:

    /**
     * 图片大于102*126就调整为102*126
     * @param base64String
     * @return
     * @throws IOException 
     */
    private String changePicSize(String base64String) throws IOException {
        byte[] bs = Base64.getDecoder().decode(base64String);
        InputStream input = new ByteArrayInputStream(bs);
        Image bi = ImageIO.read(input);
    
        if (bi.getWidth(null) > 102 || bi.getHeight(null) > 126) {
            System.out.print("压缩	");
            BufferedImage tag = new BufferedImage(102, 126, BufferedImage.TYPE_INT_RGB);
            tag.getGraphics().drawImage(bi, 0, 0, 102, 126, null);
    
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            ImageIO.write(tag, "PNG", out);
            byte[] byt = out.toByteArray();
            
            out.close();
            bi.flush();
            input.close();            
            return Base64.getEncoder().encodeToString(byt);
        }else{        
            System.out.print("不压缩	");
            bi.flush();
            input.close();            
            return base64String;
        }
    }
  • 相关阅读:
    docker安装kafka
    Prometheus警报
    MongoDB介绍
    SpringMvc中几个注解
    无DNS安装VCSA
    互联网本质
    什么是领导力
    58沈剑_一分钟专栏
    以数据库思维理解区块链
    区块链的4个实际应用
  • 原文地址:https://www.cnblogs.com/duanjt/p/9540489.html
Copyright © 2011-2022 走看看