Base64 定义
Base64 是网络上较常见的用于传输 8Bit 字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。
Base64 编码的特点
1. Base64 编码可用于 在 HTTP 环境下传递较长的标识信息。
2. Base64 编码具有不可读性,需要解码后才能被理解,提升了数据的安全性。
代码示例:如何将 Base64 编码转化为可读图片
?
?
?Python 代码示例:
import base64?# base64解码保存为图片w = resp.ResultImage # ResultImage参数是接口返回图片的base64数据,将这个值赋给wp_d = base64.b64decode(w) #进行base64解码pic = open("out.jpg", "wb") #保存图片到当前路径pic.write(p_d) #将解码后的图片信息保存到本地??# 将本地图片进行base64编码img = open("in.jpg", "rb") # 打开当前路径下的图片文件img_base64 = base64.b64encode(img.read()) # 将图片进行base64编码img_base64_str=img_base64.decode('utf-8') # 将utf-8 编码的字符串转成unicode编码
Java 代码示例:
package demo;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();}}
如何将返回方式从 Base64 切换为图片 URL
如果不想进行 Base64 数据解码,需要使用图片 URL,可以按照如下步骤切换图像返回方式:
1. 在接口输入参数 RspImgType 中传入 "url",将返回图像方式切换为返回图片的 URL。如果不传或传入 "base64",则默认返回图片的 Base64 数据。
?
?
?2. 在接口输出参数 ResultImage 中获得图片 URL 结果,URL 有效期为1小时,请及时保存。
?
?
??