Python快速压缩文件夹中所有图片

使用PIL压缩图片

简单的例子

from PIL import Image
path = "根据自己的情况填写"

foo = Image.open(path)
foo = foo.resize((160,300),Image.ANTIALIAS)
# resize()的两个参数分别限定宽度和长度
foo.save(path ,optimize=True,quality=85)
# save()第一个参数path, 可以另外指定一个已压缩图片的存储路径, 也可以直接把原图片覆盖. quality为压缩质量, 推荐使用85, 可以保证画面清晰而且图片尽可能小.

更为复杂的例子

遍历指定文件夹, 并把不符合规范的图片压缩, 使用压缩后的图片把原图片覆盖

import os
from PIL import Image
import time
def compressImage(path):
    foo = Image.open(path)
    

# foo.size[0]得到是图片的宽度, 由于我处理的图片需要的手机上显示, 所以将宽度大于375的图片, 尽可能的压缩. 

# 你可以根据自己的情况, 对该条件进行修改    
    if foo.size[0] > 375:
        width = foo.size[0]
        rate = width / 375
        width = int(foo.size[0] / rate)
        length = int(foo.size[1] / rate)

        foo = foo.resize((width, length), Image.ANTIALIAS)
        foo.save(path, optimize=True, quality=85)

thisdir = "/home/ubuntu/sites/demo.windytrees.cn/ahu/upload"
# 指定图片文件夹

# r=root, d=directories, f = files

def executeCompressImage():
# walk()会遍历指定路径的所有文件

    for r, d, f in os.walk(thisdir):
        for file in f:
           path = os.path.join(r, file)
           compressImage(path)
while True:
    executeCompressImage()
    time.sleep(600)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值