Python中如何缩小jpg图片尺寸

[日常] Python 缩小 jpg 图片尺寸

顺便请教 Mac 下从 HEIC 转成 jpg 有啥好办法吗?


Python中如何缩小jpg图片尺寸
3 回复
from PIL import Image
import os

def resize_jpg(input_path, output_path, max_size=(800, 600), quality=85):
    """
    缩小JPG图片尺寸
    
    参数:
    input_path: 输入图片路径
    output_path: 输出图片路径
    max_size: 最大尺寸 (宽, 高),保持比例缩放
    quality: 输出质量 (1-100)
    """
    try:
        # 打开图片
        with Image.open(input_path) as img:
            # 保持宽高比计算新尺寸
            img.thumbnail(max_size, Image.Resampling.LANCZOS)
            
            # 保存图片
            img.save(output_path, 'JPEG', quality=quality, optimize=True)
            
            print(f"图片已保存至: {output_path}")
            print(f"原始尺寸: {img.size}")
            
    except FileNotFoundError:
        print(f"错误: 找不到文件 {input_path}")
    except Exception as e:
        print(f"处理图片时出错: {e}")

# 使用示例
if __name__ == "__main__":
    # 示例1: 指定最大尺寸
    resize_jpg("input.jpg", "output_small.jpg", max_size=(800, 600))
    
    # 示例2: 只限制宽度,高度自动计算
    resize_jpg("input.jpg", "output_width.jpg", max_size=(1024, 9999))
    
    # 示例3: 批量处理
    input_files = ["photo1.jpg", "photo2.jpg", "photo3.jpg"]
    for i, file in enumerate(input_files):
        if os.path.exists(file):
            output_file = f"resized_{file}"
            resize_jpg(file, output_file, max_size=(1200, 800))

这个代码用了PIL库(Pillow),先装一下:pip install Pillow

thumbnail()方法会保持图片比例缩放到不超过指定尺寸,LANCZOS重采样效果最好。quality参数控制压缩质量,85是个不错的平衡点。optimize=True会进行额外优化减小文件大小。

批量处理时注意检查文件是否存在,避免程序崩溃。


软件可以 Permute,如果你说的是库什么的不了解

请问是哪家的软件? 搜了一下不甚明了.

回到顶部