Python如何讀取base64圖片數(shù)據(jù)
Python讀取base64圖片數(shù)據(jù)
在Python中,可以使用base64模塊來解碼Base64編碼的字符串,并將其轉(zhuǎn)換回原始的數(shù)據(jù)(如圖片)。
但通常,Base64編碼的圖片字符串會帶有前綴(如data:image/jpeg;base64,),需要先去掉這個前綴再進(jìn)行解碼。
一個簡單的例子
展示如何從Base64編碼的字符串中讀取并保存圖片:
import base64
import io
from PIL import Image
# 假設(shè)有一個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只是一個示例,需要將其替換為實(shí)際的Base64編碼的圖片字符串。
而且,Base64字符串可能以不同的MIME類型開始(如data:image/png;base64,),需要相應(yīng)地調(diào)整代碼以匹配的字符串。
使用場景
以下是百度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 = {
# 請前往 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ì),超精細(xì),全細(xì)節(jié),8k" base64_image = access_image(prompt) decode_b64_image(base64_image)
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- 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中Lambda表達(dá)式的5種實(shí)用技巧
在Python編程的宇宙里,有一個強(qiáng)大而靈活的工具經(jīng)常被高效的程序員所利用——那就是Lambda表達(dá)式,下面就讓我們深入了解Lambda表達(dá)式的妙用吧2024-01-01
Python中利用aiohttp制作異步爬蟲及簡單應(yīng)用
asyncio可以實(shí)現(xiàn)單線程并發(fā)IO操作,是Python中常用的異步處理模塊。這篇文章主要介紹了Python中利用aiohttp制作異步爬蟲的相關(guān)知識,需要的朋友可以參考下2018-11-11
封裝?Python?時間處理庫創(chuàng)建自己的TimeUtil類示例
這篇文章主要為大家介紹了封裝?Python?時間處理庫創(chuàng)建自己的TimeUtil類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2023-05-05
PyQt5實(shí)現(xiàn)QLineEdit添加clicked信號的方法
今天小編就為大家分享一篇PyQt5實(shí)現(xiàn)QLineEdit添加clicked信號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python實(shí)現(xiàn)3行代碼解簡單的一元一次方程
這篇文章主要介紹了Python實(shí)現(xiàn)3行代碼解簡單的一元一次方程,很適合Python初學(xué)者學(xué)習(xí)借鑒,需要的朋友可以參考下2014-08-08
scrapy框架攜帶cookie訪問淘寶購物車功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了scrapy框架攜帶cookie訪問淘寶購物車,本文通過實(shí)例代碼圖文詳解給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法
今天小編就為大家分享一篇python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
基于Python實(shí)現(xiàn)文章信息統(tǒng)計的小工具
及時的統(tǒng)計可以更好的去分析讀者對于內(nèi)容的需求,了解文章內(nèi)容的價值,以及從側(cè)面認(rèn)識自己在知識創(chuàng)作方面的能力。本文就來用Python制作一個文章信息統(tǒng)計的小工具?,希望對大家有所幫助2023-02-02
Python3+pycuda實(shí)現(xiàn)執(zhí)行簡單GPU計算任務(wù)
GPU的加速技術(shù)在深度學(xué)習(xí)、量子計算領(lǐng)域都已經(jīng)被廣泛的應(yīng)用。這篇文章就來和大家聊聊Python3如何利用pycuda執(zhí)行簡單GPU計算任務(wù)?,感興趣的可以了解一下2023-03-03

