NoS*_*ies 7 java base64 jsp servlets image
我需要将图像对象转换为base64对象,以便将其加载到客户端的标记中.
但是我似乎无法弄清楚如何解决这个问题.是否有人可以轻松使用这段代码?
这是我用来将外部图像链接转换为图像对象的方法
Image image = null;
URL url = new URL(request.getParameter("hdn_path"));
image = ImageIO.read(url);
Run Code Online (Sandbox Code Playgroud)
我不确定我是否正确的方式.
Jea*_*art 11
byte[] imageBytes = IOUtils.toByteArray(new URL("...")));
String base64 = Base64.getEncoder().encodeToString(imageBytes);
Run Code Online (Sandbox Code Playgroud)
例
ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageIO.write(image, "png", output);
DatatypeConverter.printBase64Binary(output.toByteArray());
Run Code Online (Sandbox Code Playgroud)
接受的答案从 URL 读取文件,如果有人通过从文件系统读取图像来查找 Base64 编码的图像,可以使用下面的代码片段。
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Base64;
import org.apache.commons.io.IOUtils;
public String img2Text(){
String base64="";
try{
InputStream iSteamReader = new FileInputStream("featured-700x467.png");
byte[] imageBytes = IOUtils.toByteArray(iSteamReader);
base64 = Base64.getEncoder().encodeToString(imageBytes);
System.out.println(base64);
}catch(Exception e){
e.printStackTrace();
}
return "data:image/png;base64,"+base64;
}
Run Code Online (Sandbox Code Playgroud)
返回的 base64 文本可以在 HTML 页面中使用,如下例所示
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Base64;
import org.apache.commons.io.IOUtils;
public String img2Text(){
String base64="";
try{
InputStream iSteamReader = new FileInputStream("featured-700x467.png");
byte[] imageBytes = IOUtils.toByteArray(iSteamReader);
base64 = Base64.getEncoder().encodeToString(imageBytes);
System.out.println(base64);
}catch(Exception e){
e.printStackTrace();
}
return "data:image/png;base64,"+base64;
}
Run Code Online (Sandbox Code Playgroud)