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])