2021 08 11
2021-08-11¶
Java 이미지 리사이징¶
- 참고 1: https://handcoding.tistory.com/147
- 참고 2: https://solbel.tistory.com/893
- 참고 3: https://www.baeldung.com/java-resize-image
- imageUtil 라이브러리 - 링크: https://www.gotoquiz.com/web-coding/programming/java-programming/resize-images-in-java-preserving-image-quality/
- javax.imageio.ImageIO
public static void main(String[] args){ String path = "C:\\Image.png"; File file = new File(path); BufferedImage originalImage = ImageIO.read(new File(file)); BufferedImage resizedImage = resizeImage(originalImage, 2); } private static BufferedImage resizeImage(BufferedImage originalImage, int type) { BufferedImage resizedImage = new BufferedImage(300, 300, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, 300, 300, null); g.dispose(); return resizedImage; }
- 밸덩 ImageResize
1. java.awt.Graphics2D
- 2D 모양 리사이징
BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) { BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB); Graphics2D graphics2D = resizedImage.createGraphics(); graphics2D.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null); graphics2D.dispose(); return resizedImage; }- graphics2D.setRenderingHint() 를 통해 이미지 퀄리티, 이미지 프로세싱 속도 설정 가능2. Image.getScaledInstance()
java BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) { Image resultingImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_DEFAULT); BufferedImage outputImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB); outputImage.getGraphics().drawImage(resultingImage, 0, 0, null); return outputImage; }