import sys from os.path import join import numpy from PIL import Image py3map = map map = lambda *args, **kwargs: list(py3map(*args, **kwargs)) if __name__ == '__main__': spec = sys.argv[1] out = sys.argv[2] print('jean luc control') for line in open(spec, 'r').readlines(): l = line.split(',') fname, coords = l[0], map(int, l[1:]) i = Image.open(fname) w = max(coords[0::2]) - min(coords[0::2]) h = max(coords[1::2]) - min(coords[1::2]) mw = (max(coords[0::2]) + min(coords[0::2])) / 2 mh = (max(coords[1::2]) + min(coords[1::2])) / 2 data = list(zip(coords[::2], coords[1::2])) def coord_order(coord): x, y = coord score = 0 score += 2 * int(x > mw) score += int(y > mh) return score data = list(sorted(data, key=coord_order)) tl, bl, tr, br = data data = [tl, bl, br, tr] data = sum(map(list, data), []) ii = i.transform((w, h), Image.QUAD, data=data, resample=Image.BILINEAR) ii.save(join(out, fname)) del i del ii