Popular Posts
Asynchronous and deferred JavaScript execution explained Normal execution <script> This is the default behavior of the <script> element. Parsing of the HTML code pauses while the scr... Statement.executeBatch() always returns an array of value -2 The elements in the array returned by the method executeBatch may be one of the following: A number greater than or equal to zero -- indi... vi hot key guide 第一部份:一般模式可用的按鈕說明,游標移動、複製貼上、搜尋取代等 移動游標的方法 h 或 向左方向鍵(←) 游標向左移動一個字元 j 或 向下方向鍵(↓) 游標向下移動一個字元 k 或 向上方向鍵(↑) 游標向上移動一個字元 l 或 向右方向鍵(→) 游標...
Blog Archive
Stats
Resize image using Java
/*
 * 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));
    }
}