Daten-URL in BufferedImage konvertieren

Ich habe eine Daten-URL aus einer Bilddatei und muss diese an eine andere Funktion weitergeben. Auf diesem Pfad von der Daten-URL zum BufferedImage muss es sich um ein byteArray handeln.

Mein Ansatz war der folgende:

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();
}

Das Problem ist, dass immer die UnknownImageFormatException Exception ausgelöst wird, was bedeutet, dass inputImage null ist, was bedeutet, dass ImageIO.read den Imagetyp nicht erkannt hat.

Ich habe ImageIO.getReaderFormatNames () verwendet, um die unterstützten Dateinamen zu erhalten und habe die folgende Liste:

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

Die Daten-URLs, die ich zu übergeben versuche, lauten wie folgt:data:image/png;base64,... oderdata:image/jpg;base64,...

Soweit ich weiß, befinden sich diese in der unterstützten Dateiliste und sollten daher erkannt werden.

Was kann sonst dazu führen, dass das inputImage in diesem Fall null ist? Und interessanter, wie löse ich das?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage