【Java】图片资源转为Base64编码并返回

2023-12-16 15:28:57

使用JDK把图片资源转为Base64编码并返回

在Java实际应用开发过程中,我们需要使用指定的背景图案,例如大型游戏中的一些基本图案,例如礼物、场景、武器造型等等,通俗来说就是图片源文件,专业点说叫资源,这些都需要后端把固定资源丢出,然后前端进行渲染。

所以这里简单丢一个工具类,无需引用任何包,使用JDK自带的工具,实现将图片或者媒体资源,转为Base64编码返回。

先写一个简单的示例(若不喜欢,可以直接跳到文末,可直接复制粘贴使用)
打开idea,新建一个工程,(jdk版本是8,或者更高都行),如图

在这里插入图片描述

第二步,在resources包下新建一个包 picture,如图,这里我只存放2个图片资源

在这里插入图片描述

第三步开始编程,将2张图片资源转为Base64编码并返回(亲测有效,代码中有注释)
public class PictureDemo {

    public static void main(String[] args) throws IOException {
        String urlZero = "picture/starless.png";
        String urlOne = "picture/star.png";

        LinkedList<String> picturePathList = new LinkedList<>();
        LinkedList<String> pictureBase64List = new LinkedList<>();
        picturePathList.add(urlZero);
        picturePathList.add(urlOne);

        for (String url : picturePathList) {
            String code = base64ToPicture(url);
            pictureBase64List.add(code);
        }
        pictureBase64List.forEach(System.out::println);
    }


    public static String base64ToPicture(String url) throws IOException {
        InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(url);
        assert inputStream != null;
        byte[] bytes = IOUtils.toByteArray(inputStream);
        byte[] encodeBytes = Base64.getEncoder().encode(bytes);
        return new String(encodeBytes, StandardCharsets.UTF_8);
    }
}
由此可见,以后若有固定资源加载,可以使用JDK提供的工具类简化。

以下为提取的工具类,可直接复制粘贴(教程较为通俗易懂)

public class PictureUtil {
    
    public String base64ToPicture(String resource) throws IOException {
        InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resource);
        byte[] bytes = IOUtils.toByteArray(inputStream);
        byte[] encodeBytes = Base64.getEncoder().encode(bytes);
        return  new String(encodeBytes, StandardCharsets.UTF_8);
    }
}

文章来源:https://blog.csdn.net/like_start/article/details/135032275
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。