图片base64和PIL互相转换

如题

import json
import requests
import base64 as bs64
from PIL import Image
import io

def extra_to_base64(extra):
    def get_image(url):
        for retry in range(5):
            try:
                response = requests.get(url, timeout=3)
                response.raise_for_status()
                return response.content
            except:
                continue
        return None
    try:  
        obj = json.loads(extra)
        image_list = obj['image_list']
        uri = image_list[0]['u']
        url = "https://your_domain/" + uri
        base64str = bs64.b64encode(get_image(url)).decode('utf-8')
        return base64str
    except Exception as e:
       print('fail to parse {}'.format(extra))
       return ''

def base64_to_image_file(base64_string):
    image_data = bs64.b64decode(base64_string)
    image = Image.open(io.BytesIO(image_data))
    image.save('output_image.png')

if __name__ == '__main__':
    extra = ''''''
    base64_str = extra_to_base64(extra)
    print('base64_str={}'.format(base64_str))
    base64_to_image_file(base64_str)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值