>> Delete No. 3320 article
No. java 버젼

등록 2003-01-29 15:42:00     조회 5
이름 ttr    

		저가 사용하는 jpeg파일을 스케일을 변환하는 java에서 사용하는 메서드입니다.
static한 메서드이니깐 필요한 class에 추가한 후 이용하시면 됩니다.
jpeg파일만 test하였습니다.
 /**
	 사용하기 위하여는 아래와 같이 import 한다.
	import java.awt.Image;
	import java.awt.Graphics2D;
	import java.awt.geom.AffineTransform;
	import java.awt.image.BufferedImage;
	import javax.swing.ImageIcon;
	import com.sun.image.codec.jpeg.JPEGCodec;
	import com.sun.image.codec.jpeg.JPEGImageEncoder;
 	@param orig 원본 이미지 파일명 ex: /tmp/a.jpg
	@param thumb 생성될 이미지 파일명 ex : /temp/b.jpg
	@param maxDim 생성될 이미지의 가로길이. ex : 400 (원본이미지의 가로를 400으로 줄인다. 세로
는 같은 비율로 줄어든다.) */
    public static void createThumbnail( String orig, String thumb, int maxDim) {
        try {
            // Get the image from a file.
            Image inImage = new ImageIcon(
                          orig).getImage();
	    int iwidth = inImage.getWidth(null);
	    //System.out.println(iwidth);
	    if(maxDim > iwidth)
		maxDim = iwidth;
             // Determine the scale.
	    double scale = (double)maxDim/(
	       double)inImage.getHeight(null);
            if (inImage.getWidth(
             null) > inImage.getHeight(null)) {
                scale = (double)maxDim/(
                double)inImage.getWidth(null);
            }
             // Determine size of new image.
            //One of them
            // should equal maxDim.
            int scaledW = (int)(
             scale*inImage.getWidth(null));
            int scaledH = (int)(
             scale*inImage.getHeight(null));
             // Create an image buffer in
            //which to paint on.
            BufferedImage outImage =
              new BufferedImage(scaledW, scaledH,
                BufferedImage.TYPE_INT_RGB);
             // Set the scale.
            AffineTransform tx =
              new AffineTransform();
             // If the image is smaller than
            //the desired image size,
            // don't bother scaling.
            if (scale < 1.0d) {
                tx.scale(scale, scale);
            }
             // Paint image.
            Graphics2D g2d =
             outImage.createGraphics();
            g2d.drawImage(inImage, tx, null);
            g2d.dispose();
             // JPEG-encode the image
            //and write to file.
            OutputStream os =
             new FileOutputStream(thumb);
            JPEGImageEncoder encoder =
              JPEGCodec.createJPEGEncoder(os);
            encoder.encode(outImage);
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }--아내와 나
사랑이야기를 쓴다.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved