Convert WebP to PNG using java
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
二:编译得到 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 等版本
相关文章
Android自定义控件ViewFipper实现竖直跑马灯效果
这篇文章主要为大家详细介绍了Android自定义控件ViewFipper实现竖直跑马灯效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-12-12
Android颜色处理SweepGradient扫描及梯度渲染示例
这篇文章主要为大家介绍了Android颜色处理SweepGradient扫描渲染及梯度渲染示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-06-06
android开发教程之framework增加字符串资源和图片等resource资源
这篇文章主要介绍了android开发中framework增加字符串资源和图片等resource资源方法,需要的朋友可以参考下2014-02-02
AndroidStudio更新出现Refreshing ''xxx'' Gradle Project状态解决办法
这篇文章主要介绍了AndroidStudio更新出现Refreshing 'xxx' Gradle Project状态解决办法的相关资料,需要的朋友可以参考下2017-03-03
Android基于API的Tabs3实现仿优酷tabhost效果实例
这篇文章主要介绍了Android基于API的Tabs3实现仿优酷tabhost效果,结合完整实例形式分析了Android实现优酷界面效果的相关技巧,需要的朋友可以参考下2015-12-12
Android TextWatcher监控EditText中的输入内容并限制其个数
本篇文章主要介绍了Android TextWatcher监控EditText中的输入内容并限制其个数,我们可以通过TextWatcher去观察输入框中输入的内容,有兴趣的可以了解一下。2017-04-04


最新评论