将图片转为base64编码的几种Java代码写法

背景:

在调用图片相关算法时,通常采用图片的Base64编码。Base64 是一种常见的二进制数据编码方式,它将任意二进制数据转换为只包含ASCII字符集(64个字符)的 文本字符串 (包括大写字母、小写字母、数字和两个特殊符号),便于在网络传输、数据存储和HTML/CSS等文本环境中直接使用。图片Base64编码则是将图片文件(如PNG、JPEG等格式)的二进制数据经过此编码过程,生成一段可嵌入文本中的字符串。

将图片转为base64格式的作用主要有以下几点:

  1. 减少HTTP请求:将图片转为base64格式后,可以将图片的内容编码进网页中的CSS、JavaScript或HTML文件中,从而减少了HTTP请求次数,提高了网页的加载速度。

  2. 加密传输:将图片转为base64格式后,可以在不使用HTTPS加密传输的情况下,对图片进行加密传输,增强了数据的安全性。

  3. 适用于小图片:将小图片转为base64格式后,可以减小图片的请求大小,适用于一些小图片的场景,例如图标、小背景图片等。

  4. 但是需要注意的是,将图片转为base64格式会增加网页的体积,并且可能会导致网页加载速度变慢,所以在使用时需要权衡利弊,根据实际情况选择是否使用。

下面是将图片转为base64编码的几种Java代码写法。


写法一:

import java.util.Base64;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
 
public class ImageToBase64 {
    public static String encodeImageToBase64(String path) throws IOException {
        Path imagePath = new File(path).toPath();
        byte[] imageBytes = Files.readAllBytes(imagePath);
        return Base64.getEncoder().encodeToString(imageBytes);
    }
 
    public static void main(String[] args) {
        try {
            String base64Image = encodeImageToBase64("path/to/your/image.jpg");
            System.out.println(base64Image);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

写法二:

import java.util.Base64;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
 
public class ImageToBase64 {
 
    public static void main(String[] args) throws IOException{
    String filepath = "path/to/your/image.jpg";
    File file = new File(filepath);
    byte[] data = null;
    FileInputStream fileInputStream = new FileInputStream(file);
    data = new byte[fileInputStream.available()];
    fileInputStream.read(data);
    fileInputStream.close();
    String base64 = Base64.getEncoder().encodeToString(data);
    System.out.println(base64);
        
    }
}

写法三:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;

public class ImageToBase64 {
    public static void main(String[] args) throws Exception {
        String filePath = "path/to/your/image.jpg";
        byte[] imgBytes = Files.readAllBytes(Paths.get(filePath));
        String base64String = Base64.getEncoder().encodeToString(imgBytes);
        System.out.println(base64String);
    }
}

参考:
为什么要将图片转成base64的格式?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值