|
오늘 필요해서 오전에 간단하게 만든 이미지 사이즈 변경 소스
아무 에러체크도 없지만... 조그만 손보면 여기저기서 쓸만 할 듯.. import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.plugins.jpeg.JPEGImageWriteParam; import javax.imageio.stream.ImageOutputStream; /** * @author 金 度亨 */ public class JPEGChangeScale { public static void changeSize(String inputPath, String outputPath, int width, int height) { try { BufferedImage inBi = ImageIO.read(new File(inputPath)); if (inBi == null) throw new IOException("読み込み時に例外発生. 画像ファイルじゃないとか..."); // Scale計算 double scaleWidth = (double) width / (double) inBi.getWidth(); double scaleHeight = (double) height / (double) inBi.getHeight(); AffineTransform atf = new AffineTransform(); atf.setToScale(scaleWidth, scaleHeight); float quality = 1; // 変換後のファイル BufferedImage outBi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); outBi.createGraphics().drawImage(inBi, atf, null); ImageWriter imageWriter = null; Iterator imageWriterIterator = ImageIO .getImageWritersByFormatName("jpg"); if (imageWriterIterator.hasNext()) { imageWriter = (ImageWriter) imageWriterIterator.next(); } if (imageWriter == null) { System.err.println("JPEGImageWriter not found."); System.exit(1); } ImageOutputStream ios = ImageIO.createImageOutputStream(new File( outputPath)); imageWriter.setOutput(ios); IIOImage iioImage = new IIOImage(outBi, null, null); ImageWriteParam iwp = new JPEGImageWriteParam(null); iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); iwp.setCompressionQuality(quality); imageWriter.write(null, iioImage, iwp); ios.close(); // finallyで書くのマンドクセ('A`) imageWriter.dispose(); } catch (IOException e) { e.printStackTrace(); } } }
|
LINK
카테고리
라이프로그
포토로그
최근 등록된 덧글
사이트 모음에서... ..
by 김학균 at 02/27 유용한 사이트모음들 by 유용한 사이트모음들 at 01/01 형 잘 살고있는지... ㅜ.. by 종원 at 10/30 얼마전에 너의 전화 못 받.. by 공은혜 at 04/18 터키를 2번이나 하셨네요.. by kwangsub at 04/16 hello by Naomi at 04/06 hello by Naomi at 04/06 hello by Naomi at 04/06 hello by Naomi at 04/06 hello by Naomi at 04/06 이전블로그
이글루 파인더
|