Inspired by a reddit image post (which I cannot for the life of me find again), I decided to take a series of photos of the sunset from my parents’ house at Cedar-by-the-Sea, Vancouver Island. I many photos over the course of several hours using a digital camera fixed in position on a tripod.
I thought it would look good to blend the images one into the other, so I wrote a quick python script using the Python Image Library. The script blends consecutive images using linear interpolation. An artistic choice to make was how wide the blended regions should be. I tried everything from relatively thin blending regions:
To almost completely blended images:
In the end, however, I decided that what looked the best was actually to have no blending, but rather sharp boundaries between the images. This actually accentuates the effect I was going for, which was to show the changing light over time. Blending the images together actually lessens the effect, rather than enhancing it as had hoped. I plan to get the finished product printed and framed:
Here’s the code for the script I used (apologies for quick-and-dirtiness):
import sys from PIL import Image def imageblend(imdir, numimages = 5, blendwidth=0): if not blendwidth%2 == 0: raise Exception('blendwidth not even') im = Image.open(imdir+"im1.jpg") (width, height) = im.size for i in range(1, numimages): imnum = i+1 centre = i*width/numimages - 1 im_i = Image.open(imdir+'im%d.jpg'%(imnum)) for x in range(blendwidth): col_ind = centre - (blendwidth/2) + x +1 col_box = (col_ind, 0, col_ind+1, height-1) col_o = im.copy().crop(col_box) col_i = im_i.copy().crop(col_box) col = Image.blend(col_o, col_i, float(x)/blendwidth) im.paste(col, col_box) rest_box = (centre+blendwidth/2+1, 0, width-1, height-1) rest = im_i.copy().crop(rest_box) im.paste(rest, rest_box) im.save(imdir+"im_output.jpg") def main(): imdir = sys.argv imageblend(imdir) if __name__=='__main__': main()