python将图片按照指定尺寸比例压缩

 

 

 

 

 

 

 

 

from PIL import Image

def compress_image(input_image_path, output_image_path, target_width, target_height):
    """
    压缩图片到指定尺寸。

    :param input_image_path: 原始图片的路径
    :param output_image_path: 压缩后图片的保存路径
    :param target_width: 目标宽度
    :param target_height: 目标高度
    """
    # 打开原始图片
    original_image = Image.open(input_image_path)

    # 获取原始图片的尺寸
    original_width, original_height = original_image.size

    # 计算压缩比例
    width_ratio = target_width / original_width
    height_ratio = target_height / original_height

    # 确定使用哪个比例进行压缩,避免图片失真
    ratio = min(width_ratio, height_ratio)

    # 计算新的尺寸
    new_width = int(original_width * ratio)
    new_height = int(original_height * ratio)

    # 压缩图片
    compressed_image = original_image.resize((new_width, new_height), Image.LANCZOS)
    # Use LANCZOS or Resampling.LANCZOS instead.

    # 保存压缩后的图片
    compressed_image.save(output_image_path)


# 使用方法
input_path = '1.jpg'  # 原始图片路径
output_path = '2.jpg'  # 压缩后图片保存路径
target_width = 320  # 目标宽度
target_height = 240  # 目标高度

compress_image(input_path, output_path, target_width, target_height)
 

 

posted @ 2024-03-04 16:20  freedragon  阅读(97)  评论(0编辑  收藏  举报