/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package apptraining; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /** * * @author BruceTsai */ public class ImageResizer { public static void doit(String soureFile, String targetFile, double percentage) throws IOException { BufferedImage image = ImageIO.read(new File(soureFile)); System.out.println(String.format("原始檔寬度 : %d , 原始檔高度 : %d", image.getWidth(), image.getHeight())); int[] size = new int[]{(int) (image.getWidth() * percentage), (int) (image.getHeight() * percentage)}; System.out.println(String.format("轉換後寬度 : %d , 轉換後高度 : %d", size[0], size[1])); BufferedImage target = new BufferedImage(size[0], size[1], image.getType()); Graphics2D graphic = target.createGraphics(); graphic.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); graphic.drawImage(image, 0, 0, size[0], size[1], null); ImageIO.write(target, "jpg", new File(targetFile)); } }