mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-24 19:02:51 +00:00
66 lines
1.8 KiB
Python
Executable file
66 lines
1.8 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
#
|
|
# This python helper script does blend 2 images together and produces
|
|
# a by KSplashX usuable PNG animation file.
|
|
#
|
|
# Use:
|
|
# blend.py img1.png img2.png output.png
|
|
#
|
|
|
|
import sys, os, getopt, Image, ImageFile
|
|
|
|
def generate(srcfile1,srcfile2,destfile):
|
|
srcimg1 = Image.open(srcfile1)
|
|
srcimg2 = Image.open(srcfile2)
|
|
|
|
(width1,height1) = srcimg1.size
|
|
(width2,height2) = srcimg2.size
|
|
|
|
maxwidth = width1>width2 and width1 or width2
|
|
maxheight = height1>height2 and height1 or height2
|
|
|
|
if width1 != maxwidth or height1 != maxheight:
|
|
srcimg1.resize( (maxwidth,maxheight) )
|
|
if width2 != maxwidth or height2 != maxheight:
|
|
srcimg2.resize( (maxwidth,maxheight) )
|
|
|
|
destimg = Image.new( "RGBA", (maxwidth*10,maxheight*2) )
|
|
for row in range(1,3):
|
|
for col in range(1,11):
|
|
if row==1:
|
|
alpha = col*row/10.0
|
|
else:
|
|
alpha = 1.0 - (col*row/20.0)
|
|
img = Image.blend(srcimg1, srcimg2, alpha)
|
|
x = maxwidth * col - maxwidth
|
|
y = maxheight * row - maxheight
|
|
destimg.paste(img,(x,y))
|
|
destimg.save(destfile)
|
|
|
|
def main(argv):
|
|
def usage():
|
|
print "Syntax: %s <inputimagefile1> <inputimagefile2> <outputimagefile>" % os.path.basename(argv[0])
|
|
|
|
try:
|
|
opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help"])
|
|
except getopt.GetoptError, err:
|
|
print str(err) # will print something like "option -a not recognized"
|
|
usage()
|
|
sys.exit(1)
|
|
|
|
for o, a in opts:
|
|
if o in ("-h", "--help"):
|
|
usage()
|
|
sys.exit()
|
|
else:
|
|
assert False, "unhandled option"
|
|
|
|
if len(args) < 3:
|
|
usage()
|
|
sys.exit(2)
|
|
|
|
generate(args[0],args[1],args[2])
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv)
|