ImageIO, BufferedImage 사용
private static BufferedImage createResizedCopy(Image originalImage, int scaledWidth, int scaledHeight, boolean preserveAlpha) { int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB; BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType); Graphics2D g = scaledBI.createGraphics(); if (preserveAlpha) { g.setComposite(AlphaComposite.Src); } g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); g.dispose(); return scaledBI; } /** * 이미지 리사이즈 * @param srcFile 원본 이미지 * @param destFile 리사이즈 이미지 * @param width 리사이즈될 가로 길이 * @param height 리사이즈될 세로 길이 * @param imageType 리사이즈될 이미지 타입(PNG/JPG 등) * @param preserveAlpha 투명화 여부 * @throws IOException */ public static void resizeImage(File srcFile, File destFile, int width, int height, String imageType, boolean preserveAlpha) throws IOException { BufferedImage originalImage = ImageIO.read(srcFile); BufferedImage resizedImage = createResizedCopy(originalImage, width, height, preserveAlpha); ImageIO.write(resizedImage, imageType, destFile); // System.out.println(ImageIO.getReaderFormatNames().toString()); // System.out.println(ImageIO.getWriterFormatNames().toString()); } |
'프로그래밍 > Java' 카테고리의 다른 글
[jar] jar 압축하기/해제하기 (0) | 2010.09.10 |
---|---|
[java] byte 단위로 문자열 잘라내기 (1) | 2010.08.06 |
[java] 소수점 자리수 / 천단위 콤마 (0) | 2010.05.18 |
[java] Convert Milliseconds to Date (0) | 2010.03.15 |
[java] invoke (0) | 2010.03.09 |