Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換
Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,是一種基于64個可打印字符來表示二進(jìn)制數(shù)據(jù)的方法。通過http傳輸圖片常常將圖片數(shù)據(jù)轉(zhuǎn)換成base64之后再進(jìn)行傳輸。
Base64簡介
Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進(jìn)制數(shù)據(jù)的方法??刹榭碦FC2045~RFC2049,上面有MIME的詳細(xì)規(guī)范。
Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個較長的唯一標(biāo)識符(一般為128-bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時,采用Base64編碼具有不可讀性,需要解碼后才能閱讀。
Python中將圖片轉(zhuǎn)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中調(diào)用base64編碼
<img src="data:image/jpg;base64,這里是base64的編碼"/>
另外,有很多網(wǎng)站提供轉(zhuǎn)換API,在線編碼解碼
base64轉(zhuǎn)為圖片
import os,base64 with open("C:\\Users\\wonai\\Desktop\\1.txt","r") as f: #str = "iVBORw0KGgoAAAANSUhEUgAAANwAAAAoCAIAAAAaOwPZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQuSURBVHhe7ZptmoMgDIR7rh6o5+lpvEwP01XUGshAokgX+8z+7PKRTF6SoN7e/KMCnSlw68wemkMF3oSSEHSnAKHsLiQ0iFCSge4UIJTdhYQGEUoy0J0ChLK7kNAgQkkGulOAUHYXEhpEKMlAdwpcG8rhcRv/HkN3stIgW4F88DYoX89nObjmANuOc0eMXpHHcyX9+mowhgHKmdlChM0BZzvzet6DSSW7xjEWk8Hu+/O1x7zF1237/Uu4t/O46V6sZuARoZb9KqbO7On4rJlykqcYYnNAjSbx3Gmrj6WTzxirVlA+90F82G+nm4fX3zOxgqyKqRaUU7b8FpRDOeyjJa7k5oByT1yWse4mxfDC3NrrprnQtQeUMuUXoURmCGHdKfl/oTS8MElxu2mudO0BXUCZL8efVGU0EmsQjkGpM2H8y/CwGtW1C3el8ywxhHKWxgOlaPNj0VcRRW+OoiKvCXF0o6YeXWLQDaNQyMf1Clhsi22D9HUNXOBCVZamaBmiO5BxRdRQOt3M3oFUAD4/HDolSChx7AvXzRIJQtgsUfMu6HB+HglNLc5d5KiwpcAqTH7Idk/lvLD9Z0rUx4vYWL2UJ4WY6XbdL91ML57+EjsRNEMnw/LCrKklN9NNkbuLvKsdabjM/ZMByh+PDWuuw6kDEYXPzeSfzGARlNG1M1ENRCfGLlUuJ5MVTg+UyxGzC+1+KN/DkDyuTSVbqo7vNnagfKPTrH9b8pQtgQ/PRCifDTaUJaIWw8adUycklLrcppkyCZfkJ5cYlSZnQTkmsYf58OYAlMpg6JnlhYlC9uxhIdWvbr1NS8Ahc9pgQlkkai3fOorVUK4JGeYTJIgVTm+mnCqrmSfOgDJ0mOlOlhcmClk3M0KmPzeF0mnDGVB6LjqbmKB8p5GRQ34DStRCdpEpp5MRNWRNocwsjk9i7nyqugzPYTWUSZuqe0qVucAT5tgH9ITmxEdCdihjpcCVAgfI8uJ4pgx3K3UhgBeRQ9dtbJmjp1TnYmsKoSH1UGqKE23mxlrsri4yKsuAFnZ5BrAugypw0/IdSvHmxHJbEI6lREzj0asuOc7TR8BONdd9pNKCo4LRNY9CdgCEXjqObDhQvsFpy7z7DsqHP9khxp9DzNeKbSR+Iy3/n31tqVFYe17xFUZkTu507+4px4USFwBRm32lbzFyXphgRMtn3cwqqaef8a0UrMHlaJYM8RC1Iq2DeOXvKUdVjALmzromST8+4N+Egm9rrwzl/DpAVlddnE9su36Jyx6ECtkUxufaUMJOzfwQsxldUbnTLyO/ckCcNsS112yDmkkGF/4xKL8rHndrowChbKMrV61QgFBWiMepbRQglG105aoVChDKCvE4tY0ChLKNrly1QgFCWSEep7ZRgFC20ZWrVihAKCvE49Q2ChDKNrpy1QoF/gDXIhmWmc+CSAAAAABJRU5ErkJggg==" imgdata = base64.b64decode(f.read()) file = open('1.jpg','wb') file.write(imgdata) file.close()
Python中將base64轉(zhuǎn)為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格式轉(zhuǎn)為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])
到此這篇關(guān)于Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)OpenCV傳統(tǒng)圖片格式與base64轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對django 模型 unique together的示例講解
今天小編就為大家分享一篇對django 模型 unique together的示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python操作word常見方法示例【win32com與docx模塊】
這篇文章主要介紹了Python操作word常見方法,結(jié)合實(shí)例形式分析了Python使用win32com模塊與docx模塊操作word的相關(guān)實(shí)現(xiàn)技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-07-07使用numpy實(shí)現(xiàn)topk函數(shù)操作(并排序)
這篇文章主要介紹了使用numpy實(shí)現(xiàn)topk函數(shù)操作(并排序),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python實(shí)現(xiàn)合并兩個字典的8種方法
Python有多種方法可以通過使用各種函數(shù)和構(gòu)造函數(shù)來合并字典,本文主要介紹了Python實(shí)現(xiàn)合并兩個字典的8種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07Python運(yùn)算符之Inplace運(yùn)算符的使用教程
Inplace運(yùn)算符的行為與普通運(yùn)算符相似,只是在可變目標(biāo)和不可變目標(biāo)的情況下它們以不同的方式起作用。本文將通過示例帶大家了解Inplace運(yùn)算符的使用,需要的可以參考一下2022-09-09