37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import os
|
|
from PIL import Image
|
|
import sys
|
|
|
|
from voussoirkit import imagetools
|
|
from voussoirkit import winglob
|
|
|
|
filenames = sys.argv[1]
|
|
|
|
filenames = winglob.glob(filenames)
|
|
for filename in filenames:
|
|
i = Image.open(filename)
|
|
if all(x.isdigit() for x in sys.argv[2:3]):
|
|
new_x = int(sys.argv[2])
|
|
new_y = int(sys.argv[3])
|
|
else:
|
|
try:
|
|
ratio = float(sys.argv[2])
|
|
new_x = int(i.size[0] * ratio)
|
|
new_y = int(i.size[1] * ratio)
|
|
except ValueError:
|
|
print('you did it wrong')
|
|
quit()
|
|
|
|
(image_width, image_height) = i.size
|
|
|
|
if new_x == 0:
|
|
(new_x, new_y) = imagetools.fit_into_bounds(image_width, image_height, 10000000, new_y)
|
|
if new_y == 0:
|
|
(new_x, new_y) = imagetools.fit_into_bounds(image_width, image_height, new_x, 10000000)
|
|
|
|
print(i.size, new_x, new_y)
|
|
i = i.resize( (new_x, new_y), Image.ANTIALIAS)
|
|
suffix = '_{width}x{height}'.format(width=new_x, height=new_y)
|
|
(base, extension) = os.path.splitext(filename)
|
|
newname = base + suffix + extension
|
|
i.save(newname, quality=100)
|