>> Edit article
이름
제목
패스워드
저가 사용하는 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