当前位置: 代码网 > it编程>前端脚本>Python > Python如何读取base64图片数据

Python如何读取base64图片数据

2024年09月24日 Python 我要评论
python读取base64图片数据在python中,可以使用base64模块来解码base64编码的字符串,并将其转换回原始的数据(如图片)。但通常,base64编码的图片字符串会带有前缀(如dat

python读取base64图片数据

在python中,可以使用base64模块来解码base64编码的字符串,并将其转换回原始的数据(如图片)。

但通常,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编码的内容)"

# 去掉前缀('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部署的应用为例:

# 获取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"]
# 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
# 调用函数
prompt = "杰作,高品质,超精细,全细节,8k"
base64_image = access_image(prompt)
decode_b64_image(base64_image)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com