需求说明
网页显示某些小的图片需要转成base64的格式,例如<img src="data:image/jpg;base64,anc123==" />这样的形式,后台图片的文件或者类型,需要一个转换方法,工具方法如下:
可用户将RenderedImage(或者BufferedImage)以及File(图片文件)转成base64格式的。
/**
 * 把RenderedImage转成base64格式的形式,用于网页img标签显示图片
 * @param img RenderedImage
 * @param format 格式,例如png或者jpg
 */
public static String imgToBase64String(final RenderedImage img, final String format) {
    try {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        ImageIO.write(img, format, out);
        byte[] bytes = out.toByteArray();
        String base64bytes = Base64.getEncoder().encodeToString(bytes);
        return "data:image/" + format + ";base64," + base64bytes;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}
/**
 * 把图片文件转成base64格式的形式,用于网页img标签显示图片
 * @param file 图片文件
 * @param format 格式,例如png或者jpg
 */
public static String imgToBase64String(final File file, final String format) {
    try {
        BufferedImage img = ImageIO.read(file);
        return imgToBase64String(img, format);
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}
文章评论