0

画像の URL ( http://example.com/myimage.jpg ) があり、それをバイト配列に変換して DB に保存したいと考えています。

私は次のことをしましたが、このメッセージが表示されますURI scheme is not "file"

URI uri = new URI(profileImgUrl);
File fnew = new File(uri);
BufferedImage originalImage=ImageIO.read(fnew);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos );
byte[] imageInByte=baos.toByteArray();
4

1 に答える 1

2

コンストラクターのJavadocではFile(URI)、URI が「ファイル」URI でなければならないことが指定されています。つまり、「file:」で始まる必要があります。

uri "file" に等しいスキーム、空でないパス コンポーネント、および未定義の機関、クエリ、およびフラグメント コンポーネントを持つ絶対階層 URI

ただし、ファイル/URI の代わりに URL を使用することで、目的を達成できます。

URL imageURL = new URL(profileImgUrl);
BufferedImage originalImage=ImageIO.read(imageURL);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos );

//Persist - in this case to a file

FileOutputStream fos = new FileOutputStream("outputImageName.jpg");
baos.writeTo(fos);
fos.close();
于 2013-10-19T15:28:16.523 に答える