1、有些图片后缀虽然是png的,但是实质上是其他的格式。
样例图片
用记事本可以打开看到他真实的格式
2、这种格式ImageIO.read() 读取 图片的时候返回的是null
3、解决办法
只需要增加如下依赖,代码不用动
webp-imageio-core-0.1.0.jar
<dependency>
<groupId>com.github.nintha</groupId>
<artifactId>webp-imageio-core</artifactId>
<version>0.1.0</version>
</dependency>
4、获取图片的类型
public static String getImageType(String url) {
try {
URL oracle = new URL(url);
ImageInputStream image = ImageIO.createImageInputStream(oracle.openStream());
Iterator<ImageReader> readers = ImageIO.getImageReaders(image);
return readers.next().getFormatName();
}catch (Exception e){
log.error("getImageType url={}",url,e);
}
return null;
}
评论区