-
Java 최대 너비 높이에 맞춰 resize하기Java 2022. 4. 12. 17:05반응형
최대 너비, 최대 높이에 맞춰서 resize해야하는 상황이 있다.
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 = (int) (height * (MAX_WIDTH / (float) width)); width = MAX_WIDTH; } if (height > MAX_HEIGHT) { width = (int) (width * (MAX_HEIGHT / (float) height)); height = MAX_HEIGHT; } Image resizedImage = originalImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = newImage.getGraphics(); g.drawImage(resizedImage, 0, 0, null); g.dispose(); return newImage; }
- 원본 이미지의 width가 MAX_WIDTH보다 크면
- 비율의 맞게 height 조정, width는 MAX_WIDTH
- 원본 이미지의 height가 MAX_HEIGHT보다 크면
- 비율의 맞게 width 조정, height는 MAX_HEIGHT
- 조정된 크기에 맞게 신규 이미지 생성
- 그리기
반응형'Java' 카테고리의 다른 글
Feign POST 파일 전송 (multipart/form-data) (0) 2022.04.12 Feign POST application/x-www-form-urlencoded (0) 2022.04.12 JAVA BufferedImage to MultipartFile (0) 2022.04.12 Java 여러장의 이미지 세로로 merge 하기 (0) 2022.04.12 Proxy 통해 이미지 URL 다운로드 (0) 2022.04.12 - 원본 이미지의 width가 MAX_WIDTH보다 크면