>  기사  >  Java  >  Java에서 이미지 크기를 압축하는 방법

Java에서 이미지 크기를 압축하는 방법

WBOY
WBOY앞으로
2023-04-19 16:28:122190검색

사용 시나리오:

1. 이미지 업로드 기능을 사용할 때 업로드된 이미지가 너무 커서 서버 리소스를 너무 많이 사용합니다. 2. 클라이언트가 다양한 크기의 이미지를 업로드하여 고정된 크기를 표시해야 하는 경우. 사용자는 java

Function Preview

1. 압축 전

Java에서 이미지 크기를 압축하는 방법

2. 압축 후

Java에서 이미지 크기를 압축하는 방법

코드 구현:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제