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
只是一個示例,需要將其替換為實際的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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
一文教你掌握Python中Lambda表達(dá)式的5種實用技巧
在Python編程的宇宙里,有一個強大而靈活的工具經(jīng)常被高效的程序員所利用——那就是Lambda表達(dá)式,下面就讓我們深入了解Lambda表達(dá)式的妙用吧2024-01-01Python中利用aiohttp制作異步爬蟲及簡單應(yīng)用
asyncio可以實現(xiàn)單線程并發(fā)IO操作,是Python中常用的異步處理模塊。這篇文章主要介紹了Python中利用aiohttp制作異步爬蟲的相關(guān)知識,需要的朋友可以參考下2018-11-11封裝?Python?時間處理庫創(chuàng)建自己的TimeUtil類示例
這篇文章主要為大家介紹了封裝?Python?時間處理庫創(chuàng)建自己的TimeUtil類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2023-05-05PyQt5實現(xiàn)QLineEdit添加clicked信號的方法
今天小編就為大家分享一篇PyQt5實現(xiàn)QLineEdit添加clicked信號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06scrapy框架攜帶cookie訪問淘寶購物車功能的實現(xiàn)代碼
這篇文章主要介紹了scrapy框架攜帶cookie訪問淘寶購物車,本文通過實例代碼圖文詳解給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法
今天小編就為大家分享一篇python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12基于Python實現(xiàn)文章信息統(tǒng)計的小工具
及時的統(tǒng)計可以更好的去分析讀者對于內(nèi)容的需求,了解文章內(nèi)容的價值,以及從側(cè)面認(rèn)識自己在知識創(chuàng)作方面的能力。本文就來用Python制作一個文章信息統(tǒng)計的小工具?,希望對大家有所幫助2023-02-02Python3+pycuda實現(xiàn)執(zhí)行簡單GPU計算任務(wù)
GPU的加速技術(shù)在深度學(xué)習(xí)、量子計算領(lǐng)域都已經(jīng)被廣泛的應(yīng)用。這篇文章就來和大家聊聊Python3如何利用pycuda執(zhí)行簡單GPU計算任務(wù)?,感興趣的可以了解一下2023-03-03