有些图片后缀为jpg,但是实际格式却不是jpg,通过url下载图片字节。然后用ImageIO读取时,出现返回null的情况。出现这种情况,就需要使用webp-imageio.jar。(https://bitbucket.org/luciad/webp-imageio).
作者毕竟大牛,给出的使用方法信息量太大,文字非常简洁,导致我在使用中,耗费大量时间摸索。现在总结步骤如下:
1.官网下载编译后的可执行文件:https://bitbucket.org/luciad/webp-imageio/downloads。源文件我也曾经尝试,但是需要编译,windows环境下,编译各种出错。(呵呵。。。这年头用windows写代码是有点着急)
2.可执行文件里边包括了webp-imageio.jar和各个平台对应的库文件。
3.建议通过maven将webp-imageio.jar部署到仓储中(install或者deploy)然后通过pom文件中的声明,将jar引入你的工程。
4.还记得第2步还下载了库文件,选择程序所运行的平台对应的库文件,拷贝到“java.library.path”中。
ps:寻找java.libary.path的方法:logger.info(System.getProperty("java.library.path"));
5.至此,再使用imageIO读取图片的字节流,一些奇怪的格式就支持了,所以也就不会返回空了。