<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      使用JAI擴展Java Image的技巧

      [摘要]Java Image功能一直都在增強,但是向磁盤寫一個圖像文件或者返回一個PNG或JPEG依然比較難實現。但是我們可以使用Java Advanced Imaging(JAI)API來解決這個問題。J...
      Java Image功能一直都在增強,但是向磁盤寫一個圖像文件或者返回一個PNG或JPEG依然比較難實現。但是我們可以使用Java Advanced Imaging(JAI)API來解決這個問題。JAI可以從SUN的Java站點下載,它包含在JDK 1.4的javax.imageio包中。



      Windows中提供一個installation.exe文件提供JAI的自動安裝,而UNIX和Linux中則沒有。雖然JAI可以運行在純Java模式,但是同時也提供有Windows、Linux以及UNIX的本地庫,這樣可以提高運行速度。



      下面的例子是安裝在蘋果的OS X上的JAI,所以我們選擇純Java模式。要安裝JAI,你需要jai tar.gz文件中的一個。將三個重要的jar文件,mlibwrapper_jai.jar, jai_codec.jar, and jai_core.jar放到你的classpath中。我們推薦將他們放到你的JDK的jre/lib/ext目錄下。



      對于Java來說,JAI是一個奇怪的系統,不像其他的方面有很多方法需要了解,這里只有一個叫做JAI的高級類和一些輔助方法。這些方法的第一個參數是一個操作類型名字,所以我們將會看到這樣的代碼:

      source = JAI.create("fileload", .. );
      JAI.create("extrema", src, ...);
      JAI.create("histogram", src, ...);



      在這個系統中,你可以很容易的添加你自己的或者第三方的功能,對類型的要求比較松,所以利用它進行開發難度比較大。

      將一個AWT圖像轉化成一個PNG文件需要下面的一小段代碼:

      import java.awt.Image;
      import java.awt.image.renderable.ParameterBlock;

      import javax.media.jai.JAI;
      import javax.media.jai.PlanarImage;
      .....
       Image img = ....
      OutputStream out =....
      ParameterBlock pb = new ParameterBlock().add(img);
      PlanarImage src = (PlanarImage) JAI.create("awtImage", pb);
      JAI.create("encode", src, out, "PNG", null);



      從上面的例子可以看出向create方法傳遞參數有兩種方法。新方法是使用ParameterBlock包含所有的參數。我們使用這種方法實現了awtImage操作。老方法是則使用一個重載方法,現在已不提倡使用,但是我們可以使用這種方法實現解碼操作。



      上面的代碼將把一個Image編碼成為一個PNG并將其寫入OutputStream中



      日韩精品一区二区三区高清