使用java将图像转换为base64

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

但是,我似乎无法弄清楚如何解决这个问题。 是否有人为此我可以轻松使用一段代码?

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

Image image = null; URL url = new URL(request.getParameter("hdn_path")); image = ImageIO.read(url); 

我不确定我是否正确的方式。

使用Apache IOUtilsBase64

 byte[] imageBytes = IOUtils.toByteArray(new URL("..."))); String base64 = Base64.getEncoder().encodeToString(imageBytes); 
  • 使用ImageIO.write()编写。
  • ByteArrayOutputStream包装字节数组,因此可以用作输出流。
  • 使用DatatypeConverter将字节数组转换为aa base64字符串,从6开始在核心Java中,不需要额外的库

 ByteArrayOutputStream output = new ByteArrayOutputStream(); ImageIO.write(image, "png", output); DatatypeConverter.printBase64Binary(output.toByteArray()); 

接受的答案从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页面中使用,如下例所示

    Smiley face