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


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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM