2024-03-29
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; // 이미지 크기가 최대 크기보다 작으면 원본 이미지 반환
}
}
메인 이미지 출처 : 사진: Unsplash의Nick Andréka