在Java中,是否可以将BufferedImage转换为IMG数据URI?
我用以下示例代码创建了一个图形图像。
BufferedImage bi = new BufferedImage(50,50,BufferedImage.TYPE_BYTE_BINARY); Graphics2D g2d = bi.createGraphics(); // Draw graphics. g2d.dispose(); // BufferedImage now has my image I want.
此时我有BufferedImage,我想将其转换为IMG数据URI。 这可能吗? 例如..
没有经过测试,但这样的事情应该做到:
ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(bi, "PNG", out); byte[] bytes = out.toByteArray(); String base64bytes = Base64.encode(bytes); String src = "data:image/png;base64," + base64bytes;
Java有许多不同的base64编解码器实现 。 我用MigBase64得到了很好的结果。
您可以使用不使用任何外部库的此解决方案 。 简洁干净! 它使用Java 6库( DatatypeConverter
)。 为我工作!
ByteArrayOutputStream output = new ByteArrayOutputStream(); ImageIO.write(image, "png", output); DatatypeConverter.printBase64Binary(output.toByteArray());