Python读取base64图片数据

Python读取base64图片数据

在Python中,可以使用base64模块来解码Base64编码的字符串,并将其转换回原始的数据(如图片)。但通常,Base64编码的图片字符串会带有前缀(如data:image/jpeg;base64,),需要先去掉这个前缀再进行解码。

以下是一个简单的例子,展示如何从Base64编码的字符串中读取并保存图片:

python 复制代码
import base64
import io
from PIL import Image

# 假设有一个Base64编码的图片字符串,这里我们使用一个简化的示例
base64_str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdCIFhZJiouMjY7...(此处省略其他Base64编码的内容)"

# 去掉前缀('data:image/jpeg;base64,')
base64_data = base64_str.split(',')[1]

# 解码Base64数据
image_bytes = base64.b64decode(base64_data)

# 将字节数据转换为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,),需要相应地调整代码以匹配的字符串。

使用场景:

以下是百度Aistudio部署的应用为例:

python 复制代码
# 获取base64图片数据
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"]
python 复制代码
# base64数据转图片
import base64  
import io  
from PIL import Image  


def decode_b64_image(base64_data):
    # 解码Base64数据  
    image_bytes = base64.b64decode(base64_data)  

    # 将字节数据转换为BytesIO对象  
    image_io = io.BytesIO(image_bytes)  
    
    # 使用PIL库读取图片  
    image = Image.open(image_io)  
    
    # 保存图片到文件  
    # image.save('output.jpg')
    return image
python 复制代码
# 调用函数
prompt = "杰作,高品质,超精细,全细节,8k"
base64_image = access_image(prompt)
decode_b64_image(base64_image)
相关推荐
iuu_star1 分钟前
Python大模型智能学习平台——设计与实现(AI教学系统)
大数据·人工智能·python·学习
天才测试猿11 分钟前
如何封装自动化测试框架?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
overmind26 分钟前
oeasy Python 102 集合_运算_交集_并集_差集_对称差集
开发语言·python
爱吃提升44 分钟前
Python自动驾驶图像识别完整实战教程(OpenCV+YOLOv8,附可直接运行源码)
python·opencv·自动驾驶
statistican_ABin1 小时前
2026 FIFA 世界杯比赛与球队数据探索性分析
人工智能·python·数据挖掘·数据分析
qetfw1 小时前
yt-dlp:下载公开视频、字幕、封面和音频的实用命令
python·音视频·开源项目·效率工具
QH_ShareHub1 小时前
GPU 完整运行过程:驱动、CUDA Toolkit、Conda、Python PyTorch 与 R torch
pytorch·python·conda
AbsoluteLogic1 小时前
Python——必学内置模块 Sys
python
开源量化GO1 小时前
最新AI量化学习路径,从交易想法走到条件和动作
人工智能·python
香蕉鼠片2 小时前
图像处理经典脚本
图像处理·python·opencv