python改变图像大小在指定要求范围内

前言

  思路大致是降低图片质量缩小图片大小,加了一个循环判断,如果图像大小不在要求范围内,图像质量就从100递减,以5递减图片质量直到图像压缩到这个范围内。

代码如下:

import os
from PIL import Image

def compress_image(image_path, output_path, max_size=200 * 1024):
    # 读取图像
    image = Image.open(image_path)

    # 设置初始图像质量
    quality = 100
    # 循环直到图像大小小于200KB
    while True:
        # 将图像保存为JPEG格式
        image.save(output_path, format="JPEG", quality=quality)

        # 计算输出图像的大小
        output_size = os.path.getsize(output_path)
        # 如果图像大小小于200KB,则退出循环
        if output_size <= max_size:
            break

        # 否则降低图像质量并继续循环
        quality -= 5

# 将图像从原始路径读取并压缩到输出路径
compress_image(r"input.jpg", "output.jpg")


猜你喜欢

转载自blog.csdn.net/weixin_43788282/article/details/129012289