Java 获取具有给定url的图像并将其转换为字节数组
我有一个图像url(),希望将其转换为字节数组并保存在数据库中 我做了以下操作,但是获取此消息Java 获取具有给定url的图像并将其转换为字节数组,java,arrays,image,file,uri,Java,Arrays,Image,File,Uri,我有一个图像url(),希望将其转换为字节数组并保存在数据库中 我做了以下操作,但是获取此消息URI scheme不是“文件” for文件(URI)构造函数指定URI必须是“文件”URI。换句话说,它应该以“文件:”开头 uri一种绝对的、分层的uri,其模式等于“文件”,即 非空路径组件,以及未定义的权限、查询和片段 组成部分 但是,您可以通过使用URL而不是文件/URI来实现所要做的事情: URL imageURL = new URL(profileImgUrl); BufferedImag
URI scheme不是“文件”
for文件(URI)
构造函数指定URI必须是“文件”URI。换句话说,它应该以“文件:”开头
uri一种绝对的、分层的uri,其模式等于“文件”,即
非空路径组件,以及未定义的权限、查询和片段
组成部分
但是,您可以通过使用URL而不是文件/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();
为什么不直接保存字节呢?通过图像进行保存肯定会带来很大的开销?
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();