Convert WebP to PNG using java

 更新时间:2016年08月30日 15:59:01   作者:GeekLei  
本文主要介绍Convert WebP to PNG using java,这里对 WebP 做了详细说明,并讲解Linux 环境下WebP 转png格式的示例,有兴趣的小伙伴可以参考下

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

考虑到以上资源需要翻墙下载,比较慢。我已将三个文件传至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 等版本

相关文章

  • 解决Android Studio sdk emulator directory is missing问题

    解决Android Studio sdk emulator directory is missing问题

    这篇文章主要介绍了解决Android Studio sdk emulator directory is missing问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Android中NavigationView的使用与相关问题解决

    Android中NavigationView的使用与相关问题解决

    大家都知道NavigationView的引入让 Android侧边栏实现起来相当方便,最近公司项目中也使用这个新的控件完成了侧边栏的改版。在使用过程中遇到一些问题所以记录一下。本文分为两个部分,一是基本使用,二是相关问题的解决,感兴趣的朋友们下面来一起看看吧。
    2016-10-10
  • Android点击按钮返回顶部实现代码

    Android点击按钮返回顶部实现代码

    这篇文章主要为大家详细介绍了Android返回顶部实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android编程实现仿优酷旋转菜单效果(附demo源码)

    Android编程实现仿优酷旋转菜单效果(附demo源码)

    这篇文章主要介绍了Android编程实现仿优酷旋转菜单效果的方法,较为详细的分析了Android实现旋转菜单的布局与功能实现技巧,并附带完整的demo源码供读者下载参考,需要的朋友可以参考下
    2015-12-12
  • Android实现简单画图画板

    Android实现简单画图画板

    这篇文章主要为大家详细介绍了Android实现简单画图画板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Android 判断SIM卡属于哪个移动运营商详解及实例

    Android 判断SIM卡属于哪个移动运营商详解及实例

    这篇文章主要介绍了Android 判断SIM卡属于哪个移动运营商详解相关资料,并附实例代码,具有一定参考价值,需要的朋友可以参考下
    2016-11-11
  • android实现ViewPager懒加载的三种方法

    android实现ViewPager懒加载的三种方法

    这篇文章主要介绍了android实现ViewPager懒加载的三种方法,懒加载在项目运用中很广泛,可以提高运行速度,有兴趣的可以了解一下。
    2017-03-03
  • Android Studio之Debug运行期代码植入的方法

    Android Studio之Debug运行期代码植入的方法

    这篇文章主要介绍了Android Studio之Debug运行期代码植入的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Android中AlarmManager基本用法分析

    Android中AlarmManager基本用法分析

    这篇文章主要介绍了Android中AlarmManager基本用法,结合实例形式简单分析了AlarmManager的基本类型、方法及简单使用示例,需要的朋友可以参考下
    2016-08-08
  • 使用android-apktool来逆向(反编译)APK包方法介绍

    使用android-apktool来逆向(反编译)APK包方法介绍

    这篇文章主要介绍了使用android-apktool来逆向(反编译)APK包方法介绍,本文讲解了版本问题、使用apktool、反编译decode、rebuild重打包等内容,需要的朋友可以参考下
    2015-04-04

最新评论