#!/usr/bin/python
# Creates series of difference images
import Image,os,sys,progressbar
data_directory=sys.argv[1]
default_widgets=[progressbar.Percentage(), ' ', progressbar.Bar(), progressbar.ETA()]

def fade(f1,f2,n):
 i1,i2=Image.open(data_directory+f1),Image.open(data_directory+f2)
 assert i1.size==i2.size
 i3=Image.new('RGBA',i1.size)
 p1, p2, p3 = i1.load(), i2.load(), i3.load()
 pbar = progressbar.ProgressBar(widgets=['Frame %04d: ' % n] + default_widgets).start()
 for x in range(i1.size[0]):
  for y in range(i1.size[1]): 
   p3[x,y]=tuple(map(lambda (px1,px2) : abs(px1-px2),zip(p1[x,y],p2[x,y])))
   pbar.update(float(i1.size[1]*x+y)/float(i1.size[0]*i1.size[1])*100)
 pbar.finish()
 i3.save('frame%04d.jpg' % n)

file_list=os.listdir(data_directory)
jpg_list=filter(lambda x : 'jpg' in x.lower(),file_list)
jpg_list.sort()
for n,(f1,f2) in enumerate(zip(jpg_list,jpg_list[1:])): fade( f1,f2, n )