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   原地址: 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 等版本号
Convert WebP to PNG using java的更多相关文章
- Spring 整合 Flex (BlazeDS)无法从as对象 到 Java对象转换的异常:org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.Date' to required type 'java.sql.Timestamp' for property 'wfsj'; nested exception is java.lang.Ill
		
异常信息如下: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value ...
 - spring mvc出现 Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'endtime'
		
在使用spring mvc中,绑定页面传递时间字符串数据给Date类型是出错: Failed to convert property value of type [java.lang.String] ...
 - Cannot convert 0 of type class java.lang.Integer to class java.lang.Boolean
		
org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet jsp thre ...
 - 【spring mvc】后台API查询接口,get请求,后台Date字段接收前台String类型的时间,报错default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'createDate';
		
后台API查询接口,get请求,后台Date字段接收前台String类型的时间筛选条件 后台接口接收 使用的实体 而createDate字段在后台实体中是Date类型 报错信息: org.spring ...
 - Java 异常 Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'
		
查询时发送给服务器的日期的字符串格式:yyyy-MM-dd HH:mm:ss 服务器接收到日期的字符串之后,向 MySQL 数据库发起查询时,因为没有指定日期时间格式,导致字符串数据不能正确地转换为日 ...
 - How to convert webp to png/jpg/gif in MacOS
		
Environment I'm using OS X 10.11.4 and have homebrew 1.0.5 installed. Introduction I recently downlo ...
 - message [Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property
		
springmvc前台字符串,后台Date类型字段.时间强转失败 数值:18年12月31日 15:43:21 解决方法,给时间字段加注释 @DateTimeFormat(pattern = " ...
 - [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'beginTime';
		
依照https://stackoverflow.com/questions/23702041/failed-to-convert-property-value-of-type-java-lang-st ...
 - Failed to convert property value of type 'java.util.LinkedHashMap' to required type 'java.util.Map' for property 'filters'
		
在使用shiro的自定义filter出现的问题 <property name="filters"> <util:map> <entry key=&qu ...
 
随机推荐
- 基于CSOCKET的Client简单实例(转)
			
原文转自 http://blog.csdn.net/badagougou/article/details/78410382 第一步:创建一个基类为CSOCKET类的新类,Cclient,并在主对话框类 ...
 - wxpython demo
			
#!/usr/bin/python # encoding: utf-8 '''Spare.py is a starting point for a wxPython program.''' impor ...
 - 150.Evaluate Reverse Polish Notation---逆波兰式求值
			
题目链接 题目大意:计算逆波兰表达式的值. 法一:stack,用stack存数,遇到操作符,则运算.代码如下(耗时12ms): public int evalRPN(String[] tokens) ...
 - vboxmanage查询正在运行的vbox虚拟机
			
系统:linux通用,virtualbox5.0 每次用下面命令启动vm虚拟机时,发现没办法知道它的IP. $ vboxmanage startvm <vmname> --type hea ...
 - Cookies/Session机制详解
			
# 转载自:https://blog.csdn.net/fangaoxin/article/details/6952954/ 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话 ...
 - Selenium2+python自动化2-pip降级selenium3.0【转载】
			
selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH selenium默默的升级到了3.0,然而网上的教程都是 ...
 - MVC如何在路由器(RouteConfig)定义后缀.html
			
一.配置文件web.config添加一下设置 <system.webServer> <modules runAllManagedModulesForAllRequests=" ...
 - 在Laravel中使用Middleware进行身份验证
			
新建一个中间件: 方法写在handle中 判断用户是否登录而且是否是管理员,不是的话返回到主页 新建判断是否为管理员的方法 在kernel定义一个中间件,key是admin 注册群组路由:prefix ...
 - 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- XOR(二进制使用)
			
链接:https://www.nowcoder.com/acm/contest/116/H来源:牛客网 题目描述 Once there was a king called XOR, he had a ...
 - luogu P3819 松江1843路
			
题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方,其中住了r[i]人. 松江1843路公交车要在这条路上建一个公交站,市政府希望让最多的 ...