1. 程式人生 > >Java建立圖片檔案縮圖

Java建立圖片檔案縮圖

public static void uploadImg(InputStream file, String filePath, String fileName, int widthdist, int heightdist) throws Exception {
File targetDir = new File(filePath + FS_FILE_APP_PATH);
if (!targetDir.exists()) {
targetDir.mkdirs();
}
// 開始讀取檔案並進行壓縮
Image src = ImageIO.read(file);

// 構造一個型別為預定義影象型別之一的 BufferedImage
BufferedImage tag = new BufferedImage((int) widthdist, (int) heightdist, BufferedImage.TYPE_INT_RGB);

//繪製圖像 getScaledInstance表示建立此影象的縮放版本,返回一個新的縮放版本Image,按指定的width,height呈現影象
//Image.SCALE_SMOOTH,選擇影象平滑度比縮放速度具有更高優先順序的影象縮放演算法。
tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_SMOOTH), 0, 0, null);

//建立檔案輸出流
FileOutputStream out = new FileOutputStream(filePath + FS_FILE_APP_PATH + fileName.substring(0,fileName.lastIndexOf(".")) + ".jpg");
//將圖片按JPEG壓縮,儲存到out中
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(tag);
//關閉檔案輸出流
out.close();
}

//呼叫
uploadImg(file.getInputStream(), bootdoConfig.getUploadPath()+floderPath, fileName,100,100);