• 技术文章 >Java >java教程

    Java如何实现压缩图片大小

    WBOYWBOY2023-04-19 16:28:12转载13

    使用场景:

    1.当使用图片上传功能时,上传图片太大,造成对服务器资源过多的占用
    2.客户端上传图片尺寸大小不一,前端需要展示给用户固定尺寸时,可通过java进行对上传图片统一进行处理

    功能预览

    1.压缩前

    2.压缩后

    代码实现:

    package com.linghu.test;
    
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /*
     * @author 在下令狐
     * @describe  压缩图片大小
     * @date 2020/6/12
     */
    public class TestCompressImage {
        public static void main(String[] args) {
            try {
                //图片所在路径
                BufferedImage templateImage = ImageIO.read(new File("f:/temp/linghu.jpg"));
    
    
                //原始图片的长度和宽度
                int height = templateImage.getHeight();
                int width = templateImage.getWidth();
    
                //通过比例压缩
                float scale = 0.5f;
    
                //通过固定长度压缩
                /*int doWithHeight = 100;
                int dowithWidth = 300;*/
    
                //压缩之后的长度和宽度
                int doWithHeight = (int) (scale * height);
                int dowithWidth = (int) (scale * width);
    
                BufferedImage finalImage = new BufferedImage(dowithWidth, doWithHeight, BufferedImage.TYPE_INT_RGB);
    
                finalImage.getGraphics().drawImage(templateImage.getScaledInstance(dowithWidth, doWithHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);
    
    
                //图片输出路径,以及图片名
                FileOutputStream  fileOutputStream = new FileOutputStream("f:/temp/linghuAfterDoWith.jpg");
                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);
                encoder.encode(finalImage);
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    以上就是Java如何实现压缩图片大小的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:亿速云,如有侵犯,请联系admin@php.cn删除
    专题推荐:Java
    上一篇:怎么使用Java服务器处理图片上传 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 如何在Java中压缩文件并提供下载• Java与Scala中的偏函数与偏应用函数的使用方法• Java内部类的访问方式是什么?• 使用Java编写猴子吃桃问题的解决方案• Java编程实现群聊应用程序,使用MulticastSocket实现
    1/1

    PHP中文网