# -*- coding: latin-1 -*- # Alex 31-1-'06: genera las secuencias png para los titulos # al principio de cada escena de Terroralia. # Busca ficheros llamados data-* y crea un directorio # por cada uno, que contendrá las imágenes generadas # y la secuencia png de todas (fichero .pngs). def addcoords(a, b): """Add two 2d coords, return a 2d coord""" return (a[0] + b[0], a[1] + b[1]) def blend(img, template, mask, position): """Blend an image into the given position""" for x in range(0,10): desp = addcoords(position, [x, 0]) img.paste(template, desp, mask) import Image import ImageFont import ImageDraw import glob import os.path current = "/home/bulk/suse/terroralia/titulos/" rate = 20 # create paste mask mask = Image.new("L", (720, 432), 50) # load each template for infile in glob.glob("*.png"): dirname, ext = os.path.splitext(infile) template = Image.open(infile) # create new directory print dirname if not os.path.exists(dirname): os.makedirs(dirname) # create png sequence pngspath = dirname + ".pngs" pngs = open(pngspath, 'w') pngs.write("PNGLIST\n25.0000\n720\n432\n") # enter left for i in range(0, 720/rate): # create each image img = Image.new("RGBA", (720, 432)) coords = [i*rate-720, 0] blend(img, template, mask, coords) # save it name = '%3.3d' % (i) destination = os.path.join(dirname, "img" + name + ".png") img.save(destination) pngs.write(current + destination + "\n") # create unique image img = Image.new("RGBA", (720, 432)) img.paste(template) # save it name = '%3.3d' % (720/rate) destination = os.path.join(dirname, "img" + name + ".png") img.save(destination) # and write it 75 times (3 s) for i in range(720/rate, 75 + 720/rate): pngs.write(current + destination + "\n") # leave right for i in range(75 + 720/rate, 75 + 2*720/rate): # create each image img = Image.new("RGBA", (720, 432)) coords = [i*rate - (720+75*rate), 0] blend(img, template, mask, coords) # save it name = '%3.3d' % (i) destination = os.path.join(dirname, "img" + name + ".png") img.save(destination) pngs.write(current + destination + "\n") # close png sequence pngs.close()