ImageIo.read() 讀取圖片時返回Null的解決方法
最近做圖片縮略圖處理,大部分使用java自帶的ImageIO.read( InputStream )都能讀取到圖片,但是總有一小部分jpg圖片無法讀取到,read()方法會返回一個null,無法對這部分圖片處理。
查閱了很多資料,了解到這部分圖片基本上都是webp格式的圖片。這些圖片雖然文件后綴是jpg,但是實際格式是webp,用記事本打開可以看到,如圖。
webp是谷歌2010新出的圖片類型,java無法支持這種格式的圖片,正常的方式讀取就會報空。
添加依賴即可
<webp.version>0.1.6</webp.version>
<!-- https://mvnrepository.com/artifact/org.sejda.imageio/webp-imageio 兼容webp圖片文件--> <dependency> <groupId>org.sejda.imageio</groupId> <artifactId>webp-imageio</artifactId> <version>${webp.version}</version> </dependency>