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

使用JDK把图片资源转为Base64编码并返回(免费分享,皆可复制粘贴)

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

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

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

【Java】图片资源转为Base64编码并返回_第1张图片

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

【Java】图片资源转为Base64编码并返回_第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);
    }
}

你可能感兴趣的:(java,Base64编码)