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

本文介绍如何使用JavaJDK的内置工具,不依赖外部库,将图片资源转换为Base64编码,提供了一个示例和一个通用的PictureUtil工具类,便于在项目中加载固定资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值