#!/usr/bin/python import Image, sys, string if len(sys.argv) not in [6,7]: print "Usage: chromakey inimage outimage r g b [distance]" sys.exit(1) inimg = Image.open(sys.argv[1]).convert('RGB') outimg = inimg.convert('RGBA') bgcolor = (string.atoi(sys.argv[3]), string.atoi(sys.argv[4]), string.atoi(sys.argv[5])) if len(sys.argv) == 7: maxdistance = string.atoi(sys.argv[6]) else: maxdistance = 0 maxdistanceSquared = maxdistance * maxdistance def distanceSquared(a,b): d0 = a[0] - b[0] d1 = a[1] - b[1] d2 = a[2] - b[2] return d0*d0 + d1*d1 + d2*d2 for x in range(0,inimg.size[0]): for y in range(0,inimg.size[1]): color = inimg.getpixel((x,y)) if distanceSquared(color,bgcolor) <= maxdistanceSquared: outimg.putpixel((x,y), (color[0], color[1], color[2], 0)) outimg.save(sys.argv[2])