자바 이미지 리사이징 및 비율 변경 하는 방법 알아보기

2024-03-29


사진: Unsplash 의 Nick Andréka


1. 방법

 

import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;

public class ImageResizer {

    public static final int MAX_WIDTH = 1920;
    public static final int MAX_HEIGHT = 1080;

    // 이미지 크기 조정
    private BufferedImage resizeImage(BufferedImage originalImage) {
        int width = originalImage.getWidth();
        int height = originalImage.getHeight();

        // 이미지 크기가 최대 크기보다 큰 경우에만 크기를 조절
        if (width > MAX_WIDTH || height > MAX_HEIGHT) {
            // 이미지 크기를 조절하는 알고리즘 선택
            double scale = Math.min((double) MAX_WIDTH / width, (double) MAX_HEIGHT / height);
            int newWidth = (int) (width * scale);
            int newHeight = (int) (height * scale);

            // 이미지를 변환
            BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, originalImage.getType());
            Graphics2D g = resizedImage.createGraphics();
            g.drawImage(originalImage, 0, 0, newWidth, newHeight, null);
            g.dispose();

            return resizedImage;
        }

        return originalImage; // 이미지 크기가 최대 크기보다 작으면 원본 이미지 반환
    }
}

메인 이미지 출처 : 사진: UnsplashNick Andréka