使用给定的url获取图像并将其转换为字节数组

时间:2013-10-19 14:56:30

标签: java arrays image file uri

我有一个图片网址(http://example.com/myimage.jpg)并希望将其转换为字节数组并将其保存在我的数据库中。

我执行了以下操作,但收到此消息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();

1 个答案:

答案 0 :(得分:2)

File(URI) 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(); 构造函数指定uri必须是“文件”URI。换句话说,它应该以“file:”

开头
  

uri 一个绝对的分层URI,其方案等于“file”,a   非空路径组件,以及未定义的权限,查询和片段   部件

但是你可以通过使用URL而不是文件/ URI来实现你想要做的事情:

{{1}}