Python cv2 OpenCV 中傳統圖片格式與 base64 轉換

Base64是網絡上最多見的用於傳輸8Bit字節碼的編碼方式之一,是一種基於64個可打印字符來表示二進制數據的方法。經過http傳輸圖片經常將圖片數據轉換成base64以後再進行傳輸。html

 

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編碼python

<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])
相關文章
相關標籤/搜索