Convert WebP to PNG using java
WebP是谷歌的圖片格式,java 類(lèi)庫(kù)imageio 是不支持此種格式的。目前除了在線轉(zhuǎn)換以及工具以外,第三方類(lèi)庫(kù)轉(zhuǎn)換webp格式大致有:
1.linux:Google libwebp 既是類(lèi)庫(kù)也可以在命令行調(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即可讀寫(xiě)webp格式文件。
說(shuō)明:
操作環(huán)境:ubuntu
語(yǔ)言:java
實(shí)例:webp 轉(zhuǎn)png
步驟:
一:下載以下三個(gè)文件包
1.CMake 安裝包:cmake-3.1.0-rc2-Linux-i386.tar
2.Google webp 依賴(lài)庫(kù):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
二:編譯得到 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"));語(yǔ)句打印出java 路徑,避免遺漏。打印出的java路徑有多個(gè),有部分重復(fù)。
3.在項(xiàng)目中使用 ImageIO即可讀寫(xiě)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 的努力,以及對(duì)我的提問(wèn)的無(wú)私幫助。
今天早上發(fā)現(xiàn)有人把編譯好的包傳到項(xiàng)目里面了。。我也沒(méi)測(cè)試,不過(guò)把包也共享出來(lái)吧。原地址: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的簡(jiǎn)單實(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丟失問(wèn)題的解決方法
相關(guān)文章
Android自定義控件ViewFipper實(shí)現(xiàn)豎直跑馬燈效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件ViewFipper實(shí)現(xiàn)豎直跑馬燈效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android ListView分頁(yè)功能實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Android ListView分頁(yè)功能的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Android實(shí)現(xiàn)網(wǎng)易新聞客戶(hù)端側(cè)滑菜單(1)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)網(wǎng)易新聞客戶(hù)端側(cè)滑菜單第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Android顏色處理SweepGradient掃描及梯度渲染示例
這篇文章主要為大家介紹了Android顏色處理SweepGradient掃描渲染及梯度渲染示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
android開(kāi)發(fā)教程之framework增加字符串資源和圖片等resource資源
這篇文章主要介紹了android開(kāi)發(fā)中framework增加字符串資源和圖片等resource資源方法,需要的朋友可以參考下2014-02-02
AndroidStudio更新出現(xiàn)Refreshing ''xxx'' Gradle Project狀態(tài)解決辦法
這篇文章主要介紹了AndroidStudio更新出現(xiàn)Refreshing 'xxx' Gradle Project狀態(tài)解決辦法的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android app會(huì)crash的原因及解決方法
這篇文章主要介紹了Android app會(huì)crash的原因及解決方法,幫助大家更好的進(jìn)行Android開(kāi)發(fā),感興趣的朋友可以了解下2020-12-12
Android基于API的Tabs3實(shí)現(xiàn)仿優(yōu)酷t(yī)abhost效果實(shí)例
這篇文章主要介紹了Android基于API的Tabs3實(shí)現(xiàn)仿優(yōu)酷t(yī)abhost效果,結(jié)合完整實(shí)例形式分析了Android實(shí)現(xiàn)優(yōu)酷界面效果的相關(guān)技巧,需要的朋友可以參考下2015-12-12
Android TextWatcher監(jiān)控EditText中的輸入內(nèi)容并限制其個(gè)數(shù)
本篇文章主要介紹了Android TextWatcher監(jiān)控EditText中的輸入內(nèi)容并限制其個(gè)數(shù),我們可以通過(guò)TextWatcher去觀察輸入框中輸入的內(nèi)容,有興趣的可以了解一下。2017-04-04

