Convert WebP to PNG using java
WebP是谷歌的圖片格式,java 類庫imageio 是不支持此種格式的。目前除了在線轉(zhuǎn)換以及工具以外,第三方類庫轉(zhuǎn)換webp格式大致有:
1.linux:Google libwebp 既是類庫也可以在命令行調(diào)用
2.Python:Python Image Library(PIL)及其分支 https://pypi.python.org/pypi/PIL 不太了解
3.Java:luciad/webp-imageio https://bitbucket.org/luciad/webp-imageio/src 證實(shí)可用(linux環(huán)境下)
本文講述第三種方法:
在linux環(huán)境下,將google libwebp-0.4.0 放至 luciad-webp-imageio-2962dd563583 根目錄內(nèi),安裝CMake,在上述根目錄內(nèi)執(zhí)行 cmake . 命令,cmake完成后在上述根目錄下執(zhí)行make命令。make完成會(huì)在java目錄和c目錄下分別生成.jar 和.so 文件。將.jar 導(dǎo)入自己的java項(xiàng)目路徑,將.so文件放至系統(tǒng)java路徑。此時(shí)在java項(xiàng)目中使用imageio即可讀寫webp格式文件。
說明:
操作環(huán)境:ubuntu
語言:java
實(shí)例:webp 轉(zhuǎn)png
步驟:
一:下載以下三個(gè)文件包
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
考慮到以上資源需要翻墻下載,比較慢。我已將三個(gè)文件傳至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解壓即用,當(dāng)然也可以自己用命令從鏡像源中下載安裝。
4.在確保cmake可用的前提下,在luciad-webp-imageio-2962dd563583 根目錄下 執(zhí)行cmake . 命令。注意 cmake 和 . 之間有一個(gè)空格
5.cmake結(jié)束,看到了makefile文件, 在luciad-webp-imageio-2962dd563583 根目錄下 執(zhí)行make 命令。
6.make結(jié)束,在luciad-webp-imageio-2962dd563583 根目錄下的java和c 文件夾內(nèi)可以看到.jar 和.so
三:
1.將webp-imageio.jar導(dǎo)入 eclipse 中自己的java項(xiàng)目中。
2.將libwebp-imageio.so 放至系統(tǒng)java路徑中。可以再項(xiàng)目中利用 System.out.println(System.getProperty("java.library.path"));語句打印出java 路徑,避免遺漏。打印出的java路徑有多個(gè),有部分重復(fù)。
3.在項(xiàng)目中使用 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項(xiàng)目作者 Luciad 的努力,以及對我的提問的無私幫助。
今天早上發(fā)現(xiàn)有人把編譯好的包傳到項(xiàng)目里面了。。我也沒測試,不過把包也共享出來吧。原地址:https://bitbucket.org/luciad/webp-imageio/downloads
csdn地址:http://download.csdn.net/detail/geeklei/8163329
里面有 .jar .so .dll
涵蓋linux 32/64 windows 32/64 等版本
- Android WebP 圖片壓縮與傳輸
- Python將圖片批量從png格式轉(zhuǎn)換至WebP格式
- webpack中引用jquery的簡單實(shí)現(xiàn)
- Webpack 實(shí)現(xiàn) AngularJS 的延遲加載
- Webpack 實(shí)現(xiàn) Node.js 代碼熱替換
- python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(10):webpy框架
- ubuntu lighttpd+webpy (fastcgi)配置方法
- ASPWebPack(整站文件備份系統(tǒng)) v1.0.2 黑客也用
- ASPWebPack 代碼 提供下載
- webpageparser.dll丟失問題的解決方法
相關(guān)文章
解決Android Studio sdk emulator directory is missing問題
這篇文章主要介紹了解決Android Studio sdk emulator directory is missing問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Android中NavigationView的使用與相關(guān)問題解決
大家都知道NavigationView的引入讓 Android側(cè)邊欄實(shí)現(xiàn)起來相當(dāng)方便,最近公司項(xiàng)目中也使用這個(gè)新的控件完成了側(cè)邊欄的改版。在使用過程中遇到一些問題所以記錄一下。本文分為兩個(gè)部分,一是基本使用,二是相關(guān)問題的解決,感興趣的朋友們下面來一起看看吧。2016-10-10Android點(diǎn)擊按鈕返回頂部實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android返回頂部實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android編程實(shí)現(xiàn)仿優(yōu)酷旋轉(zhuǎn)菜單效果(附demo源碼)
這篇文章主要介紹了Android編程實(shí)現(xiàn)仿優(yōu)酷旋轉(zhuǎn)菜單效果的方法,較為詳細(xì)的分析了Android實(shí)現(xiàn)旋轉(zhuǎn)菜單的布局與功能實(shí)現(xiàn)技巧,并附帶完整的demo源碼供讀者下載參考,需要的朋友可以參考下2015-12-12Android 判斷SIM卡屬于哪個(gè)移動(dòng)運(yùn)營商詳解及實(shí)例
這篇文章主要介紹了Android 判斷SIM卡屬于哪個(gè)移動(dòng)運(yùn)營商詳解相關(guān)資料,并附實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以參考下2016-11-11android實(shí)現(xiàn)ViewPager懶加載的三種方法
這篇文章主要介紹了android實(shí)現(xiàn)ViewPager懶加載的三種方法,懶加載在項(xiàng)目運(yùn)用中很廣泛,可以提高運(yùn)行速度,有興趣的可以了解一下。2017-03-03Android Studio之Debug運(yùn)行期代碼植入的方法
這篇文章主要介紹了Android Studio之Debug運(yùn)行期代碼植入的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07使用android-apktool來逆向(反編譯)APK包方法介紹
這篇文章主要介紹了使用android-apktool來逆向(反編譯)APK包方法介紹,本文講解了版本問題、使用apktool、反編譯decode、rebuild重打包等內(nèi)容,需要的朋友可以參考下2015-04-04