Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。通过http传输图片常常将图片数据转换成base64之后再进行传输。
Base64简介
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。
Python中将图片转base64
# -*- coding: utf-8 -*- import base64 with open("/home/chaowei/1.png","rb") as f: # b64encode是编码,b64decode是解码 base64_data = base64.b64encode(f.read()) # base64.b64decode(base64data) print(base64_data)
在前端html中调用base64编码
<img src="data:image/jpg;base64,这里是base64的编码"/>
另外,有很多网站提供转换API,在线编码解码
Base64在线编码解码
Python中将base64转为opencv的Mat格式
import cv2 import base64 imgData = base64.b64decode(base64_data) nparr = np.fromstring(imgData, np.uint8) img_np = cv2.imdecode(nparr, cv2.IMREAD_COLOR) #cv2.imshow("test",img_np) #cv2.waitKey(0)
Python中将opencv的Mat格式转为base64
import cv2 import base64 imgData = base64.b64decode(base64_data) nparr = np.fromstring(imgData, np.uint8) img_np = cv2.imdecode(nparr, cv2.IMREAD_COLOR) image = cv2.imencode('.jpg', img_np)[1] base64_data = str(base64.b64encode(image))[2:-1])