Python如何讀取base64圖片數(shù)據(jù)
Python讀取base64圖片數(shù)據(jù)
在Python中,可以使用base64模塊來解碼Base64編碼的字符串,并將其轉(zhuǎn)換回原始的數(shù)據(jù)(如圖片)。
但通常,Base64編碼的圖片字符串會帶有前綴(如data:image/jpeg;base64,),需要先去掉這個前綴再進行解碼。
一個簡單的例子
展示如何從Base64編碼的字符串中讀取并保存圖片:
import base64
import io
from PIL import Image
# 假設有一個Base64編碼的圖片字符串,這里我們使用一個簡化的示例
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對象
image_io = io.BytesIO(image_bytes)
# 使用PIL庫讀取圖片
image = Image.open(image_io)
# 保存圖片到文件
image.save('output.jpg')注意:上面的Base64字符串base64_str只是一個示例,需要將其替換為實際的Base64編碼的圖片字符串。
而且,Base64字符串可能以不同的MIME類型開始(如data:image/png;base64,),需要相應地調(diào)整代碼以匹配的字符串。
使用場景
以下是百度Aistudio部署的應用為例:
# 獲取base64圖片數(shù)據(jù)
import requests
def query(payload, token='你自己的token令牌', appCode='你的appCode'):
API_URL = f"https://{appCode}.aistudio-hub.baidu.com/image/generations"
headers = {
# 請前往 https://aistudio.baidu.com/index/accessToken 查看 訪問令牌
"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對象
image_io = io.BytesIO(image_bytes)
# 使用PIL庫讀取圖片
image = Image.open(image_io)
# 保存圖片到文件
# image.save('output.jpg')
return image# 調(diào)用函數(shù) prompt = "杰作,高品質(zhì),超精細,全細節(jié),8k" base64_image = access_image(prompt) decode_b64_image(base64_image)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
封裝?Python?時間處理庫創(chuàng)建自己的TimeUtil類示例
這篇文章主要為大家介紹了封裝?Python?時間處理庫創(chuàng)建自己的TimeUtil類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2023-05-05
PyQt5實現(xiàn)QLineEdit添加clicked信號的方法
今天小編就為大家分享一篇PyQt5實現(xiàn)QLineEdit添加clicked信號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
scrapy框架攜帶cookie訪問淘寶購物車功能的實現(xiàn)代碼
這篇文章主要介紹了scrapy框架攜帶cookie訪問淘寶購物車,本文通過實例代碼圖文詳解給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法
今天小編就為大家分享一篇python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
基于Python實現(xiàn)文章信息統(tǒng)計的小工具
及時的統(tǒng)計可以更好的去分析讀者對于內(nèi)容的需求,了解文章內(nèi)容的價值,以及從側(cè)面認識自己在知識創(chuàng)作方面的能力。本文就來用Python制作一個文章信息統(tǒng)計的小工具?,希望對大家有所幫助2023-02-02
Python3+pycuda實現(xiàn)執(zhí)行簡單GPU計算任務
GPU的加速技術在深度學習、量子計算領域都已經(jīng)被廣泛的應用。這篇文章就來和大家聊聊Python3如何利用pycuda執(zhí)行簡單GPU計算任務?,感興趣的可以了解一下2023-03-03

