[java] 이미지 리사이즈

프로그래밍/Java 2010. 7. 23. 14:58 Posted by galad
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