私は画像ファイルからのデータURLを持っており、それを別の関数に渡す必要があります。 Data-URLからBufferedImageまでのこのパスに沿って、byteArrayである必要があります。データURLをBufferedImageに変換する
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();
}
問題があるが、それは常にinputImageとは、ImageIO.readはにimagetypeを認識しなかったことを意味する、ヌルであることを意味しUnknownImageFormatException例外をスロー:
私のアプローチは、以下の通りでした。
私がサポートするファイル名を取得するImageIO.getReaderFormatNamesを()を使用して、次のリストを持っている:限りdata:image/png;base64,...
またはdata:image/jpg;base64,...
:
Supported Formats:
jpg, BMP, bmp, JPG, jpeg, wbmp, png, JPEG, PNG, WBMP, GIF, gif
私は合格してみてくださいdataURLsは次のようにしています私は、それらがサポートされているファイルリストにあることを認識しています。
他に、この場合、inputImageがnullになる可能性がありますか?さらに興味深いですが、どうすれば解決できますか?
StringをBase64からImageIOで読み取ることができるバイナリ形式にデコードする必要があります.URLオブジェクトを持っている場合はImageIO – MadProgrammer
に直接渡すこともできます。@MadProgrammerのアドバイスに加えて、[' DatatypeConverter'](http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html#method_summary)を使用して、ベース64文字列を 'byte []'に変換します。 –