Python如何讀取base64圖片數(shù)據(jù)
Python讀取base64圖片數(shù)據(jù)
在Python中,可以使用base64模塊來(lái)解碼Base64編碼的字符串,并將其轉(zhuǎn)換回原始的數(shù)據(jù)(如圖片)。
但通常,Base64編碼的圖片字符串會(huì)帶有前綴(如data:image/jpeg;base64,),需要先去掉這個(gè)前綴再進(jìn)行解碼。
一個(gè)簡(jiǎn)單的例子
展示如何從Base64編碼的字符串中讀取并保存圖片:
import base64
import io
from PIL import Image
# 假設(shè)有一個(gè)Base64編碼的圖片字符串,這里我們使用一個(gè)簡(jiǎn)化的示例
base64_str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdCIFhZJiouMjY7...(此處省略其他Base64編碼的內(nèi)容)"
# 去掉前綴('data:image/jpeg;base64,')
base64_data = base64_str.split(',')[1]
# 解碼Base64數(shù)據(jù)
image_bytes = base64.b64decode(base64_data)
# 將字節(jié)數(shù)據(jù)轉(zhuǎn)換為BytesIO對(duì)象
image_io = io.BytesIO(image_bytes)
# 使用PIL庫(kù)讀取圖片
image = Image.open(image_io)
# 保存圖片到文件
image.save('output.jpg')注意:上面的Base64字符串base64_str只是一個(gè)示例,需要將其替換為實(shí)際的Base64編碼的圖片字符串。
而且,Base64字符串可能以不同的MIME類型開始(如data:image/png;base64,),需要相應(yīng)地調(diào)整代碼以匹配的字符串。
使用場(chǎng)景
以下是百度Aistudio部署的應(yīng)用為例:
# 獲取base64圖片數(shù)據(jù)
import requests
def query(payload, token='你自己的token令牌', appCode='你的appCode'):
API_URL = f"https://{appCode}.aistudio-hub.baidu.com/image/generations"
headers = {
# 請(qǐng)前往 https://aistudio.baidu.com/index/accessToken 查看 訪問(wèn)令牌
"Authorization": f"token {token}",
"Content-Type": "application/json"
}
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
def access_image(prompt):
output = query({
"prompt": f"{prompt}"
})
return output['data'][0]["b64_image"]
# base64數(shù)據(jù)轉(zhuǎn)圖片
import base64
import io
from PIL import Image
def decode_b64_image(base64_data):
# 解碼Base64數(shù)據(jù)
image_bytes = base64.b64decode(base64_data)
# 將字節(jié)數(shù)據(jù)轉(zhuǎn)換為BytesIO對(duì)象
image_io = io.BytesIO(image_bytes)
# 使用PIL庫(kù)讀取圖片
image = Image.open(image_io)
# 保存圖片到文件
# image.save('output.jpg')
return image# 調(diào)用函數(shù) prompt = "杰作,高品質(zhì),超精細(xì),全細(xì)節(jié),8k" base64_image = access_image(prompt) decode_b64_image(base64_image)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python關(guān)于圖片和base64互轉(zhuǎn)的三種方式
- Python實(shí)現(xiàn)圖片和base64轉(zhuǎn)換詳解
- Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換
- python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示
- Python 實(shí)現(xiàn)opencv所使用的圖片格式與 base64 轉(zhuǎn)換
- Python實(shí)現(xiàn)base64編碼的圖片保存到本地功能示例
- python將圖片文件轉(zhuǎn)換成base64編碼的方法
- python獲得圖片base64編碼示例
相關(guān)文章
python決策樹預(yù)測(cè)學(xué)生成績(jī)等級(jí)實(shí)現(xiàn)詳情
這篇文章主要為介紹了python決策樹預(yù)測(cè)學(xué)生成績(jī)等級(jí),使用決策樹完成學(xué)生成績(jī)等級(jí)預(yù)測(cè),可選取部分或全部特征,分析參數(shù)對(duì)結(jié)果的影響,并進(jìn)行調(diào)參優(yōu)化,決策樹可視化進(jìn)行調(diào)參優(yōu)化分析2022-04-04
Python3 filecmp模塊測(cè)試比較文件原理解析
這篇文章主要介紹了Python3 filecmp模塊測(cè)試比較文件原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
通過(guò)PHP與Python代碼對(duì)比的語(yǔ)法差異詳解
這篇文章主要介紹了通過(guò)PHP與Python代碼對(duì)比淺析語(yǔ)法差異,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
matplotlib.pyplot畫圖 圖片的二進(jìn)制流的獲取方法
今天小編就為大家分享一篇matplotlib.pyplot畫圖 圖片的二進(jìn)制流的獲取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python中如何使用xml.dom.minidom模塊讀取解析xml文件
xml.dom.minidom模塊應(yīng)該是內(nèi)置模塊不用下載安裝,本文給大家介紹python中如何使用xml.dom.minidom模塊讀取解析xml文件,感興趣的朋友一起看看吧2023-10-10
wxpython中Textctrl回車事件無(wú)效的解決方法
這篇文章主要介紹了wxpython中Textctrl回車事件無(wú)效的解決方法,較為詳細(xì)的分析了TextCtrl支持的事件類型,并給出了TextCtrl綁定回車事件的相應(yīng)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-07-07
python中的內(nèi)置函數(shù)max()和min()及mas()函數(shù)的高級(jí)用法
這篇文章主要介紹了python中的內(nèi)置函數(shù)max()和min()的相關(guān)知識(shí)及python中內(nèi)置函數(shù)max()的高級(jí)用法,需要的朋友可以參考下2018-03-03

