画像ファイルからのデータ 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 になる可能性がありますか? さらに興味深いことに、どうすれば解決できますか?