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;
        }
    }
  • 相关阅读:
    十七、mysql数据库备份
    消费端ACK和重回队列
    RabbitMQ TTL、死信队列
    消费端限流策略
    029异常处理
    028class_part2
    027class_part1
    026json和pickle,xml模块
    025__name__变量和目录结构规范
    024模块的概念
  • 原文地址:https://www.cnblogs.com/duanjt/p/9540489.html
Copyright © 2011-2022 走看看