Tags

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[1]
imageblend(imdir)

if __name__=='__main__':
main()
```