【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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!