有没有办法检查文件是否可以作为BufferedImage读取而不使用ImageIO.read(文件)进行尝试?
我最终可以提取文件的mime类型,但是有没有BufferedImage默认支持的mime类型列表或类似的东西?
答案 0 :(得分:2)
我不知道默认情况,但ImageIO.getReaderMIMETypes()
会为您提供目前支持的读者列表。
正确的做法是尝试ImageIO.createImageInputStream(file)
- 如果它不抛出IOException但返回null,则图像不可读。
请注意,ImageIO.read(file)
也不为不受支持的MIME格式引发异常,它将返回null。仅对无法解码的受支持文件(即文件已损坏)或IO错误(显然)抛出异常。