java壓縮圖片設定寬高

來源:互聯網
上載者:User

標籤:

package html2pdf_2;import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;    import javax.imageio.ImageIO;    import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder;    public class ImageZipUtil {        /**     * 等比例壓縮圖片檔案<br> 先儲存原檔案,再壓縮、上傳     * @param oldFile  要進行壓縮的檔案     * @param newFile  新檔案     * @param width  寬度 //設定寬度時(高度傳入0,等比例縮放)     * @param height 高度 //設定高度時(寬度傳入0,等比例縮放)     * @param quality 品質     * @return 返回壓縮後的檔案的全路徑     */     public static String zipImageFile(File oldFile,File newFile, int width, int height,             float quality) {         if (oldFile == null) {             return null;         }         try {             /** 對伺服器上的臨時檔案進行處理 */             Image srcFile = ImageIO.read(oldFile);             int w = srcFile.getWidth(null);         //  System.out.println(w);             int h = srcFile.getHeight(null);         //  System.out.println(h);             double bili;             if(width>0){                 bili=width/(double)w;                 height = (int) (h*bili);             }else{                 if(height>0){                     bili=height/(double)h;                     width = (int) (w*bili);                 }             }             /** 寬,高設定 */             BufferedImage tag = new BufferedImage(width, height,                     BufferedImage.TYPE_INT_RGB);             tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);             //String filePrex = oldFile.getName().substring(0, oldFile.getName().indexOf(‘.‘));             /** 壓縮後的檔案名稱 */             //newImage = filePrex + smallIcon+  oldFile.getName().substring(filePrex.length());                /** 壓縮之後臨時存放位置 */             FileOutputStream out = new FileOutputStream(newFile);                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);             JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);             /** 壓縮品質 */             jep.setQuality(quality, true);             encoder.encode(tag, jep);             out.close();            } catch (FileNotFoundException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         }         return newFile.getAbsolutePath();     }        /**     * 按寬度高度壓縮圖片檔案<br> 先儲存原檔案,再壓縮、上傳     * @param oldFile  要進行壓縮的檔案全路徑     * @param newFile  新檔案     * @param width  寬度     * @param height 高度     * @param quality 品質     * @return 返回壓縮後的檔案的全路徑     */     public static String zipWidthHeightImageFile(File oldFile,File newFile, int width, int height,             float quality) {         if (oldFile == null) {             return null;         }         try {             /** 對伺服器上的臨時檔案進行處理 */             Image srcFile = ImageIO.read(oldFile);             int w = srcFile.getWidth(null);             int h = srcFile.getHeight(null);                /** 寬,高設定 */             BufferedImage tag = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);             tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);             /** 壓縮之後臨時存放位置 */             FileOutputStream out = new FileOutputStream(newFile);                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);             JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);             /** 壓縮品質 */             jep.setQuality(quality, true);             encoder.encode(tag, jep);             out.close();         } catch (FileNotFoundException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         }         return newFile.toString();     }          /**      *       * @projectname  項目名稱: html2pdf_2      * @packageclass 包及類名: html2pdf_2.ImageZipUtil.java      * @description  功能描述: 測試      * @author       作        者: zhouzhiwei      * @param                      參        數: @param args      * @param                      參        數: @throws IOException      * @return       傳回型別: void      * @createdate   建立日期: 2015年6月3日下午4:47:06      */        public static void main(String args[]) throws IOException {         System.out.println(ImageZipUtil.zipImageFile(new File("d:/QQ20150602175637.png"),new File("E:/c2.jpg"), 400, 128, 3f));   }}

 

java壓縮圖片設定寬高

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.