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   原地址:

hl=zh-cN">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 等版本号

最新文章

  1. ZeroClipboard 复制到剪贴板
  2. ViewController之间的切换动画
  3. Qt for Mac:发布程序(widgets和quick2)
  4. 深入理解viewport(转)
  5. ubuntu 14.04 中找不到 libgtk-x11-2.0.so
  6. centos下卸载OpenJDK 并安装sun的jdk
  7. Java XML 序列化和反序列化
  8. SpringMVC DispatcherServlet 启动和加载过程(源码调试)
  9. nyoj 苹果
  10. Android手机ROM刷机简介
  11. Zara精讲C#.Cache、它和Redis区别是什么???
  12. MFC的PNG贴图按钮类(详细注释)
  13. 在linux上构建gitolite
  14. Django 类视图
  15. 数论细节梳理&模板
  16. 使用Python的turtle库画圣诞树
  17. linux的基本操作3(权限)
  18. java 搭建新项目,最佳组合:spring boot + mybatis generator
  19. Vue-学习。
  20. wfst讲解

热门文章

  1. spring in action学习笔记十五:配置DispatcherServlet和ContextLoaderListener的几种方式。
  2. 栅栏涂漆(color)
  3. 在Framework2.0环境下运行3.5的代码
  4. SQL联合查询(内联、左联、右联、全联)语法
  5. 杭电oj2072
  6. Java异常throws与throw的区别
  7. 文件夹操作-DirectoryInfo类
  8. 在 Flask 项目中解决 CSRF 攻击
  9. 【ACM】不要62 (数位DP)
  10. asp.net+uploadify实现图片上传图片