18

画像ファイルからのデータ URL があり、それを別の関数に渡す必要があります。Data-URL から BufferedImage までのこのパスに沿って、byteArray である必要があります。

私のアプローチは次のとおりでした:

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

問題は、常に UnknownImageFormatException Exception をスローすることです。これは、inputImage が null であることを意味します。つまり、ImageIO.read がイメージ タイプを認識しなかったことを意味します。

ImageIO.getReaderFormatNames() を使用して、サポートされているファイル名を取得し、次のリストを取得しました。

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

私が渡そうとするdataURLは次のようなものです:data:image/png;base64,...またはdata:image/jpg;base64,...

私が理解している限り、それらはサポートされているファイルリストに含まれているため、認識されるはずです。

この場合、他に何が原因で inputImage が null になる可能性がありますか? さらに興味深いことに、どうすれば解決できますか?

4

3 に答える 3