Python PIL压缩二进制图像(PNG转JPG)

文章目录

  • 问题描述
  • 解决方案
  • 封装
  • 参考文献

问题描述

压缩二进制图像(PNG转JPG)

1.png,69.7KB
Python PIL压缩二进制图像(PNG转JPG)_第1张图片




解决方案

Image.save() 进 BytesIO 对象再读出来即可

from PIL import Image
from io import BytesIO

img = Image.open('1.png')
img = img.convert('RGB')
bytesIO = BytesIO()
img.save(bytesIO, format='JPEG', quality=75)  # 图像质量默认为75
img = bytesIO.getvalue()
with open('result.jpg', 'wb') as f:
    f.write(img)

result.jpg,6KB
Python PIL压缩二进制图像(PNG转JPG)_第2张图片




封装

from PIL import Image
from io import BytesIO


def PIL_compress(im):
    '''PIL图像压缩

    :param im: PIL图像,PIL.Image
    :return: bytes图像
    '''
    bytesIO = BytesIO()
    im = im.convert('RGB')
    im.save(bytesIO, format='JPEG', quality=75)  # 图像质量默认为75
    return bytesIO.getvalue()


if __name__ == '__main__':
    img = Image.open('1.png')
    img = PIL_compress(img)
    with open('result.jpg', 'wb') as f:
        f.write(img)




参考文献

  1. PIL.Image.Image.save
  2. Python PIL和二进制图片互转

你可能感兴趣的:(Python,python,计算机视觉,PIL)