개발이야기/Java

[Java] 이미지 리사이징 후 저장하기 (Image Resize)

후린개발자 2024. 1. 4.
반응형

아래 소스코드는 이미지를 리사이징하고, 새로운 크기로 조절된 이미지를 저장하는 예제입니다.

 

 

1. resize 메서드

public static BufferedImage resize(InputStream inputStream, int width, int height) throws IOException {
    BufferedImage inputImage = ImageIO.read(inputStream);
    BufferedImage outputImage = new BufferedImage(width, height, inputImage.getType());
    Graphics2D graphics2D = outputImage.createGraphics();
    graphics2D.drawImage(inputImage, 0, 0, width, height, null);
    graphics2D.dispose();
    return outputImage;
}

 

-resize 메서드는 InputStream에서 이미지를 읽어들여 BufferedImage로 변환 후 새로운 크기의 BufferedImage를 생성합니다.

-Graphics2D 객체를 사용하여 이미지를 새로운 크기에 맞게 그리고 dispose 메서드를 사용하여 그래픽 객체를 정리합니다. 이후 리사이즈된 이미지를 반환합니다.

 

 

2. saveImage 메서드

public static void saveImage(BufferedImage image, String outputPath) throws IOException {
    // 저장
    ImageIO.write(image, "png", new File(outputPath));
}

 

-saveImage 메서드는 BufferedImage를 지정된 형식(png)으로 파일로 저장합니다.

 

 

3. main 메서드

-특정 이미지 파일의 경로를 입력으로 받고, 원하는 크기로 리사이징하여 다시 파일로 저장하는 예제 코드입니다.

-inputImagePath는 원본 이미지 파일의 경로를 나타내고, outputImagePath는 리사이즈된 이미지를 저장할 경로를 나타냅니다.

-targetWidth와 targetHeight는 원하는 리사이즈된 이미지의 크기를 나타냅니다.

 

 

4. 전체코드

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.imageio.ImageIO;


public class TEST {
    public static BufferedImage resize(InputStream inputStream, int width, int height) throws IOException {
        BufferedImage inputImage = ImageIO.read(inputStream);
        BufferedImage outputImage = new BufferedImage(width, height, inputImage.getType());
        Graphics2D graphics2D = outputImage.createGraphics();
        graphics2D.drawImage(inputImage, 0, 0, width, height, null);
        graphics2D.dispose();
        return outputImage;
    }
    public static void saveImage(BufferedImage image, String outputPath) throws IOException {
        // 저장
        ImageIO.write(image, "png", new File(outputPath));
    }
    public static void main(String[] args) throws Exception {
        try {
            // 입력 이미지 파일 경로
            String inputImagePath = "D:/test/1.png";

            // 출력 이미지 파일 경로
            String outputImagePath = "D:/test/1_new.png";

            // 원하는 크기
            int targetWidth = 300;
            int targetHeight = 200;

            // 이미지 리사이즈
            BufferedImage resizedImage = resize(new FileInputStream(inputImagePath), targetWidth, targetHeight);

            // 리사이즈된 이미지 저장
            saveImage(resizedImage, outputImagePath);

            System.out.println("이미지 리사이즈 완료");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 


 

콘솔 로그

 

리사이징 이미지 정보

반응형

댓글

💲 추천 글