开发者

Python如何读取base64图片数据

开发者 https://www.devze.com 2024-09-24 09:32 出处:网络 作者: Covirtue
目录python读取base64图片数据一个简单的例子使用场景总结Python读取base64图片数据
目录
  • python读取base64图片数据
    • 一个简单的例子
    • 使用场景
  • 总结

    Python读取base64图片数据

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

    但通常,Base64编码的图片字符串会带有前缀(如data:image/jpeg;base64,),需要先去掉这个前缀再进行解码。

    一个简单的例子

    展示如何从Ba编程客栈se64编码的字符串中读取并保存图片:

    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"tandroidoken {token}",
            "Content-Type": "application/json"
        }
        response = requests.post(API_URL, headers=headers,http://www.devze.com json=payload)
        return response.json()
    
    def access_imagephp(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)

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多编程客栈支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号