|
|
|
@@ -0,0 +1,45 @@ |
|
|
|
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 |