Java如何将 Base64 编码转化为可读图片
Base64 定义
Base64 是网络上较常见的用于传输 8Bit 字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。
Base64 编码的特点
- Base64 编码具有不可读性,需要解码后才能被理解,提升了数据的安全性。
- 代码示例:如何将 Base64 编码转化为可读图片
代码示例:
package zqwl;
import java.io.FileInputStream;
import java.io.*;
import java.util.Base64;
import java.util.Base64.*;
public class demo {
public static void main(String[] args) throws IOException {
//读取图片的路径
String imagePath = "in.png";
//输出图片的的base64编码信息
String p = ImageToBase64(imagePath);
//保存图片的路径
String savePath = "out.png";
saveImage(p,savePath);
}
/**
* 图片转换为base64编码字符串
*/
public static String ImageToBase64(String imgPath) throws IOException {
byte[] data = null;
// 读取图片字节数组
InputStream in = new FileInputStream(imgPath);
data = new byte[in.available()];
in.read(data);
in.close();
// 对字节数组Base64编码
Encoder encoder = Base64.getEncoder();
String i = encoder.encodeToString(data);
//打印base64编码信息
System.out.println(i);
// 返回Base64编码过的字节数组字符串
return i;
}
/**
* base64编码字符串转换为图片下载到指定路径
*
* @param base64Str base64编码字符串
* @param savePath 图片路径
* @throws IOException
*/
public static void saveImage(String p,String savePath) throws IOException {
//Base64解码
Decoder decoder = Base64.getDecoder();
byte[] b = decoder.decode(p);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{
b[i]+=256;
}
}
//生成图片
OutputStream out = new FileOutputStream(savePath);
out.write(b);
out.flush();
out.close();
}
}