Converter URL de dados em BufferedImage

Eu tenho um URL de dados de um arquivo de imagem e tenho que passá-lo para outra função. Ao longo deste caminho de Data-URL para o BufferedImage, ele precisa ser um byteArray.

minha abordagem foi a seguinte:

String dataUrl;
byte[] imageData = dataUrl.getBytes();

// pass the byteArray along the path

// create BufferedImage from byteArray
BufferedImage inputImage = ImageIO.read(new ByteArrayInputStream(imageData));

// If the picture is null, then throw an unsupported image exception.
if (inputImage == null) {
    throw new UnknownImageFormatException();
}

O problema é que ele sempre lança a exceção UnknownImageFormatException, o que significa que inputImage é nulo, o que significa que o ImageIO.read não reconheceu o tipo de imagem.

Eu usei ImageIO.getReaderFormatNames () para obter os nomes de arquivo suportados e obtive a seguinte lista:

Supported Formats: 
jpg, BMP, bmp, JPG, jpeg, wbmp, png, JPEG, PNG, WBMP, GIF, gif

Os dataURLs que eu tentei passar são como:data:image/png;base64,... oudata:image/jpg;base64,...

Tanto quanto eu entendo, aqueles estão na lista de arquivos suportados e, portanto, devem ser reconhecidos.

O que mais poderia fazer com que o inputImage fosse nulo neste caso? E mais interessante, como resolvo isso?

questionAnswers(2)

yourAnswerToTheQuestion