日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 等比缩放图片_java处理图片按比例缩放功能

發布時間:2025/3/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 等比缩放图片_java处理图片按比例缩放功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中的圖片按比例縮放功能

1. 按固定長寬進行縮放

/*

* 圖片縮放,w,h為縮放的目標寬度和高度

* src為源文件目錄,dest為縮放后保存目錄

*/

public static void zoomImage(String src,String dest,int w,int h) throws Exception {

double wr=0,hr=0;

File srcFile = new File(src);

File destFile = new File(dest);

BufferedImage bufImg = ImageIO.read(srcFile); //讀取圖片

Image Itemp = bufImg.getScaledInstance(w, h, bufImg.SCALE_SMOOTH);//設置縮放目標圖片模板

wr=w*1.0/bufImg.getWidth(); //獲取縮放比例

hr=h*1.0 / bufImg.getHeight();

AffineTransformOp ato = new AffineTransformOp(AffineTransform.getScaleInstance(wr, hr), null);

Itemp = ato.filter(bufImg, null);

try {

ImageIO.write((BufferedImage) Itemp,dest.substring(dest.lastIndexOf(".")+1), destFile); //寫入縮減后的圖片

} catch (Exception ex) {

ex.printStackTrace();

}

}

2. 按固定文件大小進行縮放

/*

* 圖片按比率縮放

* size為文件大小

*/

public static void zoomImage(String src,String dest,Integer size) throws Exception {

File srcFile = new File(src);

File destFile = new File(dest);

long fileSize = srcFile.length();

if(fileSize < size * 1024) //文件大于size k時,才進行縮放,注意:size以K為單位

return;

Double rate = (size * 1024 * 0.5) / fileSize; // 獲取長寬縮放比例

BufferedImage bufImg = ImageIO.read(srcFile);

Image Itemp = bufImg.getScaledInstance(bufImg.getWidth(), bufImg.getHeight(), bufImg.SCALE_SMOOTH);

AffineTransformOp ato = new AffineTransformOp(AffineTransform.getScaleInstance(rate, rate), null);

Itemp = ato.filter(bufImg, null);

try {

ImageIO.write((BufferedImage) Itemp,dest.substring(dest.lastIndexOf(".")+1), destFile);

} catch (Exception ex) {

ex.printStackTrace();

}

}

總結

以上是生活随笔為你收集整理的java 等比缩放图片_java处理图片按比例缩放功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。