ImageIO.read() не читает png файл

Метод ImageIO.read(file) не может прочитать png файл, но может читать jpg.

Пример с jpg

try {
    BufferedImage read = ImageIO.read(new File("asdd.jpg"));
    System.out.println(read.getHeight());
} catch (Exception e) {
    e.printStackTrace();
}

Пример с png

try {
    BufferedImage read = ImageIO.read(new File("asdaa.png"));
    System.out.println(read.getHeight());
} catch (Exception e) {
    e.printStackTrace();
}

Возвращает NullPointerException.

Размер png картинки 1000 на 1000 пикселей, файл существует.


Ответы (1 шт):

Автор решения: gil9red

В ходе расследования выяснилось, что на самом деле файл asdaa.png не PNG, а WebP (.webp)

А т.к. ImageIO не поддерживает работу с картинками этого формата, то ImageIO.read возвращал null:

If no registered ImageReader claims to be able to read the resulting stream, null is returned.

→ Ссылка