from PIL import Image
import numpy as np

def make_transparent(image):
	data = np.array(image)	
	red, green, blue, alpha = data.T
	background = (red == red[0]) & (blue == blue[0]) & (green == green[0]) & (alpha == alpha[0])
	data[...,][background.T] = (0, 0, 0, 0)
	return Image.fromarray(data)

heads = [[make_transparent(Image.open("head"+h+c+".png")).resize((500,500), resample=Image.LANCZOS) for c in ['a', 'b', 'c', 'd']] for h in ['1','2']]

mods = [[[[make_transparent(Image.open("mod"+h+m+d+c+".png")).resize((500,500), resample=Image.LANCZOS) for c in ['a','b','c','d']] for d in ['l','r']] 
						for m in ['1','2']] for h in ['1','2']]

def create_composite(head, head_colour, mod, direction, mod_colour):
	head_image = heads[head][head_colour]
	mod_image = mods[head][mod][direction][mod_colour]
	return Image.alpha_composite(head_image, mod_image)

# save all the heads on their own

for h in range(2):
	for hc in range(4):
		heads[h][hc].save("all_stims/head"+['1','2'][h]+['a','b','c','d'][hc]+".png")

# save all the possible single modifier/head combos

for h in range(2):
	for hc in range(4):
		for m in range(2):
			for d in range(2):
				for mc in range(4):
					create_composite(h, hc, m, d, mc).save("all_stims/phrase"+['1','2'][h]+['a','b','c','d'][hc]+['1','2'][m]+['l','r'][d]+['a','b','c','d'][mc]+'.png')

