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