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-imageioproject: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 等版本號