【Python】将照片压缩至100kb以内

背景:由于现在相机拍摄过于高清,怎么剪裁都还是太大,因此写了代码

准备:确保你已经安装了 Pillow 库,命令 pip install Pillow

代码:如下

from PIL import Image
import os

def compress_image(input_path, output_path, max_size_kb=100):
    """
    压缩图片到指定的最大大小(KB)。
    
    :param input_path: 输入图片路径
    :param output_path: 输出图片路径
    :param max_size_kb: 最大文件大小(KB)
    """
    # 打开图片
    img = Image.open(input_path)
    
    # 初始质量
    quality = 95
    
    while True:
        # 保存图片到内存,获取大小
        temp_file = 'temp.jpg'
        img.save(temp_file, "JPEG", optimize=True, quality=quality)
        
        # 获取文件大小(KB)
        file_size_kb = os.path.getsize(temp_file) / 1024
        
        # 如果文件大小小于最大值,则保存并退出循环
        if file_size_kb <= max_size_kb:
            img.save(output_path, "JPEG", optimize=True, quality=quality)
            break
        else:
            # 否则降低质量并重新尝试
            quality -= 5
    
    # 删除临时文件
    os.remove(temp_file)

# 设置输入和输出路径
input_path = '~/Downloads/bei.jpg'
output_path = '~/Downloads/compressed_bei.jpg'

# 将路径转换为绝对路径
input_path = os.path.expanduser(input_path)
output_path = os.path.expanduser(output_path)

# 调用压缩函数
compress_image(input_path, output_path, 100)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵鱼吸水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值