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
|
import os
import subprocess
from PIL import ImageFile
# pip install python-resize-image
from resizeimage import resizeimage
def resize_image(img, width=None, height=None, quality=72, filepath=""):
"""
given an image object, size, and filepath
resize the image, then save it , size, and filepath
resize the image, then save it at the filepath
"""
base_path = os.path.dirname(filepath)
if not os.path.isdir(base_path):
os.makedirs(base_path)
if width and height:
newimg = resizeimage.resize_cover(img, [width, height])
if width and not height:
newimg = resizeimage.resize_width(img, width)
if height and not width:
newimg = resizeimage.resize_height(img, height)
ImageFile.MAXBLOCK = img.size[0] * img.size[1] * 4
newimg.save(filepath, newimg.format, quality=quality)
subprocess.call(["jpegoptim", "%s" % filepath])
|