python缩小图片

直接代码

from PIL import Image

# 读取需要调整的图片
img = r'b.png'


im = Image.open(img)

size = im.size

im.thumbnail(size)
# 图片格式不能保存为PNG,否则图片大小可能会变大 im.save(
'666.jpeg')

 封装一个函数,小于1m大小的图片不缩小

# 压缩图片大小方法
    def photo_compress(b64_data):
        """
        注意:仅能处理图片格式,pdf等其他格式不行
        :param b64_data: 需要压缩的base64格式的文件
        :return:  压缩后的base64格式的文件
        """

        binary_data = base64.b64decode(b64_data)
        with io.BytesIO(binary_data) as im:
            # 判断二进制大小,小于1m的不做处理
            image_b = im.read()
            binary_size = len(image_b)
            if binary_size / 1e6 < 1:
                return b64_data
            # 二进制转化为PIL
            im = Image.open(im)
            # 获取图片宽高大小
            size = im.size
            # 压缩图片
            im.thumbnail(size)
            # 将图片以jpeg格式的bs64返回
            bytesIO = io.BytesIO()
            im.save(bytesIO, format='JPEG')
            data = bytesIO.getvalue()
            b64_return = base64.b64encode(data)

        return b64_return

 

posted @ 2021-07-16 13:34  10132714  阅读(360)  评论(0编辑  收藏  举报