使用PIL压缩图片
简单的例子
1 | from PIL import Image |
更为复杂的例子
遍历指定文件夹, 并把不符合规范的图片压缩, 使用压缩后的图片把原图片覆盖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 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)