python对base64的图片进行裁剪

今天遇到需要裁剪base64字符串的PNG图片,并保存到文件,网上找了代码,并进行了修改

使用的版本为 python 3.7

并安装了pil库 ,没有安装的话 用下面这句

pip3 install pillow

import base64
import re
import io
#记得安装pil
from PIL import Image

def deal_inspect_img(base64_str):
    """裁剪base64字符串的图片"""
    base64_data = re.sub('^data:image/.+;base64,', '', base64_str)
    byte_data = base64.b64decode(base64_data)
    # BytesIO 对象
    image_data = io.BytesIO(byte_data)
    # 得到Image对象
    img = Image.open(image_data)
    # 裁剪图片(左,上,右,下)
    x = 0
    y = 0
    w = 100
    h = 100
    img2 = img.crop((x, y, x+w, y+h))
    # BytesIO 对象
    imgByteArr = io.BytesIO()
    # 写入BytesIO对象
    img2.save(imgByteArr, format='PNG') 
    # 获得字节 并返回
    imgByteArr = imgByteArr.getvalue()
    return imgByteArr


#测试文件 包含有  data:image/jpg;base64, 开头
base64_str = 'data:image/jpg;base64,xxxxxxxxxxxxxxxxxx'
imgdata = deal_inspect_img(base64_str)
#写出字节到文件
with open('iss.png', 'wb') as f:
    f.write(imgdata)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值