使用java将图像转换为base64

使用java将图像转换为base64,java,image,jsp,servlets,base64,Java,Image,Jsp,Servlets,Base64,我需要将图像对象转换为base64对象,以便将其加载到客户端的标记中 然而,我似乎不知道如何实现这一目标。有没有人有我可以轻松使用的代码 这就是我用来将外部图像链接转换为图像对象的方法 Image image = null; URL url = new URL(request.getParameter("hdn_path")); image = ImageIO.read(url); 我不确定我的方法是否正确。 使用ImageIO.write()进行写入 ByteArrayOutputStrea

我需要将图像对象转换为base64对象,以便将其加载到客户端的标记中

然而,我似乎不知道如何实现这一目标。有没有人有我可以轻松使用的代码

这就是我用来将外部图像链接转换为图像对象的方法

Image image = null;
URL url = new URL(request.getParameter("hdn_path"));
image = ImageIO.read(url);
我不确定我的方法是否正确。

  • 使用ImageIO.write()进行写入
  • ByteArrayOutputStream包装字节数组,以便将其用作输出流
  • 使用DatatypeConverter将字节数组转换为base64字符串,在CoreJava 6中,不需要额外的库
范例

ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageIO.write(image, "png", output);
DatatypeConverter.printBase64Binary(output.toByteArray());
使用Apache和:

从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;
}
返回的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;
}