程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 基於java的圖片文件格式轉換和線性縮放

基於java的圖片文件格式轉換和線性縮放

編輯:JAVA編程入門知識
圖片文件格式轉換最核心的問題就是要解決各種圖片格式的編碼和解碼,推薦用jimi包,可從 http://Java.sun.com/prodUCts/jimi/ 下載該包及其源碼和demo
  
   <!-- frame contents --> <!-- /frame contents -->   需要注重的是:jimi提供了對幾乎所有圖片格式的解碼支持,但是為提供gif和tif/tiff格式的編碼api,gif編碼問題在網上可以找到縣相關的源碼,tiff似乎jai:http://java.sun.com/products/java-media/jai/index.jsp提供了它的編碼,不過我沒有用jai,暫時用jpeg編碼代替了。
  
     察看jimi的源碼,在com.sun.jimi.core中是jimi的核心處理api。
  
   public void toJPG(String source, String dest, int quality) {
  
   if (dest == null dest.trim().equals(""))
     dest = source;
  
   if (!dest.toLowerCase().trim().endsWith("jpg")) {
     dest += ".jpg";
     System.out.println("Overriding to JPG, output file: " + dest);
   }
   if (quality < 0 quality > 100 (quality + "") == null
   (quality + "").equals("")) {
     System.out.println("quality must between ’0’ and ’100’");
     System.out.println("set to DEFAULT value:’75’");
     quality = 75;
  
   }
   try {
     JPGOptions options = new JPGOptions();
     options.setQuality(quality);
     ImageProducer image = Jimi.getImageProducer(source);
     JimiWriter writer = Jimi.createJimiWriter(dest);
     writer.setSource(image);
     // 加入屬性設置,非必要
     // /*
     writer.setOptions(options);
     // */
     writer.putImage(dest);
   } catch (JimiException je) {
     System.err.println("Error: " + je);
   }
   }

     在進行格式轉換時,並不需要關心原圖的格式,只要要轉換的圖片格式在jimi的解碼格式范圍內,就可以完全透明的進行decode過程:
  
   ImageProducer image = Jimi.getImageProducer(source);
     實際的解碼只需要以行代碼,就這麼簡單。
  
     編碼過程最簡單的也只需要很少的代碼:
  
   JimiWriter writer = Jimi.createJimiWriter(dest);
   writer.setSource(image);
   // 加入屬性設置,非必要
   // /*
   writer.setOptions(options);
   // */
   writer.putImage(dest);

     以上代碼就完成了圖片編碼到輸出到os生成轉換後文件的全過程。
  
     上面代碼中的 writer.setOptions(options)是用來對輸出文件的屬性進行相關的設置,每種格式的屬性都不一樣,com.sun.jimi.core.options.*中針對每種圖片編碼格式的相關屬性提供了getter和setter方法,可以方便的進行設置:
  
     com.sun.jimi.core.options.*中針對每種圖片編碼格式的相關屬性提供了getter和setter方法,可以方便的進行設置:
  
   JPGOptions options = new JPGOptions();
   options.setQuality(quality);

     格式轉換就這麼簡單。
  
     jimi不支持的encode格式的解決
  
   /**
   *
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved