from __future__ import print_function, division

import os
import glob
import Image
import math


def image_gen(dir, prefix = "", suffix = ""):
	globbing = "{0}*{1}".format(prefix, suffix)
	globber = glob.iglob(os.path.join(dir, globbing))

	for imgfn in globber:
		print(imgfn)
		for img in cutout_2_2(imgfn):
			yield img

def cutout_2_2(imgfn):
	img = Image.open(imgfn)
	sub_size = map(lambda x: x / 2, img.size)

	for i in range(4):
		row = i // 2
		column = round((i / 2) - math.floor(i / 2))
		#print((row, column))

		top = row * sub_size[1] # height
		left = column * sub_size[0]

		bottom = (row + 1) * sub_size[1]
		right = (column + 1) * sub_size[0]

		cropped = img.crop(map(lambda x: int(x), (left, top, right, bottom)))
		yield cropped

def main():
	prefix = "HAR081_"
	suffix = ".jpg"

	for img in image_gen(
		"data/envelopes", prefix = prefix,  suffix = suffix):

		img.show()
		number = "00{0}".format(raw_input("Plate no.: "))
		try:
			img.save(os.path.join("data/envelopes", "{0}{1}{2}".format(
				prefix, number, suffix)))
		except Exception, e:
			print(e)

if __name__ == "__main__":
	main()
