編輯:關於Android編程
WebP是谷歌的圖片格式,java 類庫imageio 是不支持此種格式的。目前除了在線轉換以及工具以外,第三方類庫轉換webp格式大致有:
1.linux:Google libwebp 既是類庫也可以在命令行調用
2.Python:Python Image Library(PIL)及其分支 https://pypi.python.org/pypi/PIL 不太了解
3.Java:luciad/webp-imageio https://bitbucket.org/luciad/webp-imageio/src 證實可用(linux環境下)
本文講述第三種方法:
在linux環境下,將google libwebp-0.4.0 放至 luciad-webp-imageio-2962dd563583 根目錄內,安裝CMake,在上述根目錄內執行 cmake . 命令,cmake完成後在上述根目錄下執行make命令。make完成會在java目錄和c目錄下分別生成.jar 和.so 文件。將.jar 導入自己的java項目路徑,將.so文件放至系統java路徑。此時在java項目中使用imageio即可讀寫webp格式文件。
說明:
操作環境:ubuntu
語言:java
實例:webp 轉png
步驟:
一:下載以下三個文件包
1.CMake 安裝包:cmake-3.1.0-rc2-Linux-i386.tar
2.Google webp 依賴庫:libwebp-0.4.0.tar.gz 原地址:https://developers.google.com/speed/webp/download?hl=zh-cN
3.luciad/webp-imageio工程:luciad-webp-imageio-2962dd563583.zip 原地址:https://bitbucket.org/luciad/webp-imageio/src
考慮到以上資源需要翻牆下載,比較慢。我已將三個文件傳至csdn,0分下載 。
地址:http://download.csdn.net/detail/geeklei/8161731
二:編譯得到 webp-imageio.jar 和 libwebp-imageio.so
1.解壓 luciad-webp-imageio-2962dd563583.zip。
2.將libwebp-0.4.0.tar.gz 解壓至 luciad-webp-imageio-2962dd563583 根目錄下。
3.將cmake-3.1.0-rc2-Linux-i386.tar 解壓。 cmake解壓即用,當然也可以自己用命令從鏡像源中下載安裝。
4.在確保cmake可用的前提下,在luciad-webp-imageio-2962dd563583 根目錄下 執行cmake . 命令。注意 cmake 和 . 之間有一個空格
5.cmake結束,看到了makefile文件, 在luciad-webp-imageio-2962dd563583 根目錄下 執行make 命令。
6.make結束,在luciad-webp-imageio-2962dd563583 根目錄下的java和c 文件夾內可以看到.jar 和.so
三:
1.將webp-imageio.jar導入 eclipse 中自己的java項目中。
2.將libwebp-imageio.so 放至系統java路徑中。可以再項目中利用 System.out.println(System.getProperty("java.library.path"));語句打印出java 路徑,避免遺漏。打印出的java路徑有多個,有部分重復。
3.在項目中使用 ImageIO即可讀寫webp格式文件了。
代碼:
File file1= new File("/home/geeklei/Desktop/640_tp.webp"); File file2= new File("/home/geeklei/Desktop/640a.png"); System.out.println(System.getProperty("java.library.path")); try { BufferedImage im = ImageIO.read(file1); ImageIO.write(im, "png", file2); } catch (IOException e) { e.printStackTrace(); }
感謝luciad/webp-imageio項目作者 Luciad 的努力,以及對我的提問的無私幫助。
今天早上發現有人把編譯好的包傳到項目裡面了。。我也沒測試,不過把包也共享出來吧。原地址:https://bitbucket.org/luciad/webp-imageio/downloads
csdn地址:http://download.csdn.net/detail/geeklei/8163329
裡面有 .jar .so .dll
涵蓋linux 32/64 windows 32/64 等版本
最近好長時間都沒有寫blog了,主要是因為最近工作上的事以及下載Android源碼的事耽誤的(下載源碼這件事會在後續的blog中寫道,這個真的很有意義呀~~),那麼今天來
智能手機的迅速普及,大大的豐富了我們的娛樂生活。現在大家都喜歡晚上睡覺前玩會兒手機,但是應用的日間模式往往亮度太大,對眼睛有較為嚴重的傷害。因此,如今的應用往往開發了 日
最近公司沒事,研究了下多嵌套滾動組件的事件分發,雖然以前也接觸過,但都是拿網上的用,也是特別簡單的,正好朋友也需要,就研究了下。這個Demo也不是很完善,放上來也是讓各位
本文介紹了一個使用Handler的Android應用程序,通過該程序,我們可以了解Handler的基本用法。該程序運行效果如下: 點擊But