成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用Thumbnails實現(xiàn)圖片指定大小壓縮

項目中有個要求,對上傳服務(wù)器的圖片大小進(jìn)行判斷,大于500k的圖片要進(jìn)行壓縮處理,讓其小于500k后在上傳。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、網(wǎng)站建設(shè)、辰溪網(wǎng)絡(luò)推廣、小程序制作、辰溪網(wǎng)絡(luò)營銷、辰溪企業(yè)策劃、辰溪品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供辰溪建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:jinyejixie.com

可以通過java api的ImageIO實現(xiàn)圖片壓縮,但是看了網(wǎng)上的博客普遍都說bug比較多,會有OOM內(nèi)存溢出的現(xiàn)象。

Thumbnails插件是Google的插件,能指定不同的參數(shù)進(jìn)行壓縮操作。
比如:寬高(size),縮放(scale),制定質(zhì)量比(outputQuality)等。

插件使用的jar包為:

thumbnailator-0.4.8.jar

代碼如下:

 /**
 * 
 * @param srcPath 原圖片地址
 * @param desPath 目標(biāo)圖片地址
 * @param desFileSize 指定圖片大小,單位kb
 * @param accuracy 精度,遞歸壓縮的比率,建議小于0.9
 * @return
 */
 public static String commpressPicForScale(String srcPath,String desPath,
 long desFileSize , double accuracy){
 try {
 File srcFile = new File(srcPath);
 long srcFilesize = srcFile.length();
 System.out.println("原圖片:"+srcPath + ",大小:" + srcFilesize/1024 + "kb");
 //遞歸壓縮,直到目標(biāo)文件大小小于desFileSize
 commpressPicCycle(desPath, desFileSize, accuracy);
 
 File desFile = new File(desPath);
 System.out.println("目標(biāo)圖片:" + desPath + ",大小" + desFile.length()/1024 + "kb");
 System.out.println("圖片壓縮完成!");
 } catch (Exception e) {
 e.printStackTrace();
 }
 return desPath;
 }

 public static void commpressPicCycle(String desPath , long desFileSize,
 double accuracy) throws IOException{
 File imgFile = new File(desPath);
 long fileSize = imgFile.length();
 //判斷大小,如果小于500k,不壓縮,如果大于等于500k,壓縮
 if(fileSize <= desFileSize * 500){
 return;
 }
 //計算寬高
 BufferedImage bim = ImageIO.read(imgFile);
 int imgWidth = bim.getWidth();
 int imgHeight = bim.getHeight();
 int desWidth = new BigDecimal(imgWidth).multiply(
  new BigDecimal(accuracy)).intValue();
 int desHeight = new BigDecimal(imgHeight).multiply(
  new BigDecimal(accuracy)).intValue();
 Thumbnails.of(desPath).size(desWidth, desHeight).outputQuality(accuracy).toFile(desPath);
 //如果不滿足要求,遞歸直至滿足小于1M的要求
 commpressPicCycle(desPath, desFileSize, accuracy);
 }

然后壓縮圖片大小:

commpressPicForScale(filePath, filePath, 500, 0.8);

壓縮完成:

使用Thumbnails實現(xiàn)圖片指定大小壓縮

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前名稱:使用Thumbnails實現(xiàn)圖片指定大小壓縮
當(dāng)前鏈接:http://jinyejixie.com/article24/pggece.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站域名注冊、面包屑導(dǎo)航、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
通江县| 汤原县| 腾冲县| 马公市| 宁安市| 西充县| 平顶山市| 九江县| 宁海县| 灵武市| 晋宁县| 白山市| 六枝特区| 铜陵市| 铜陵市| 田阳县| 班戈县| 肃宁县| 大化| 大化| 曲靖市| 牟定县| 名山县| 宁明县| 修水县| 黔东| 景宁| 铜梁县| 伊川县| 左云县| 雅安市| 石首市| 定兴县| 湖北省| 富民县| 潞城市| 肇庆市| 文水县| 达州市| 门头沟区| 肃宁县|