Take the bloody shot!

Time flies… another year of taking a photo of myself every day has passed. You can read more about the process in last year’s article. This year I managed to take 344 pictures. I lost everything between June 30th and July 15th due to technical snafu. Accounting for those 16 photos I would have come out at 360, a solid ten more photos than last year. It still saddens me to have lost those photos as some of them were rather extraordinary ones. I completely changed my approach to storing and backing up the photos after Everyday had failed me so horribly once again.

However, before I delve into all that: me, from March 26th 2011 to March 26th 2013.

Warning! The actual video has rapidly fast picture changes, beware if you’re epileptic

The video plays considerably faster than the last one, showing 15 photos per second. I also created a slower version with ten fps as in last year’s video if you want to take a closer look.
There’s lots to discover in the second half/year of the video - my dad, my sister, my ex, many friends and colleagues. After publishing last year’s video, awareness for the project grew in my environment. My favorite moment: I was out with friends and took my picture. Someone I did’t even know happened to see me adjusting the angles and waved his hand behind my head, cheerfully proclaiming “Ha, now I’m in your video!” – You are indeed, buddy!
Having friends tease you and look silly behind you while taking the picture still hasn’t gotten old for me. On the contrary, some of them started doing it themselves which led to hilariously complicated “threesomes” of us trying to take our pictures at the same time with each one having the other two in the background of their respective shot.

Alle drei zusammen

As I already said last year I can’t imagine a reason to stop with this. Therefore I’ve tried to separate the process from a specific app as much as possible. Outlined below is how I store and process the photos, all I need from an app now are the daily reminder and adjustment lines. I hope something better than Everyday will surface – please let me know if you found or developed something.
Until then I will love need Everyday just as M loves needs Bond. (Skyfall spoiler!)

Technical Stuff

The code for my three bash functions is on Github. Make sure you understand it before using them! You’ll need exiftool, imagemagick and ffmpeg, I suggest getting them via homebrew.

Taking and storing the photos

I thought having Everyday set to upload each photo to Flickr would suffice in addition to regularly backing up my iPhone. Boy, was I wrong. Also the import function is a joke - photos get sorted arbitrarily, duplicates are created, the UI shows glitches. Exactly the experience you want to have when dealing with something as delicate as photos.
Now I let the app save each photo directly in the camera roll and then import them to my computer regularly. That way I can make extra sure that the date a photo was taken doesn’t get lost and I don’t have to rely on anyone not to fuck up the backup.
My method relies on two premises:

  • The imported photos are named IMG_1234.JPG.
  • Their “File last modified” timestamp is set to when they were taken.

Both are true when importing the photos using “Image Capture” on OS X. I have one directory dedicated to storing the photos in which I put newly imported ones as well in order to process them for permanent storage by calling everyday_newpics in my shell.
This creates a full backup of all photos before doing anything just to be sure. It then stores the new photos’ dates permanently into their EXIF tags and finally renames them so their file names also reflect said dates. Afterwards two finder windows are opened so you can check the results. Yep, that’s excessively cautious. I really hated losing those 16 photos. You can delete the $name.old directory if everything is fine after the import.

Before and after importing new photos

You’ll have all your photos in a directory on your computer, neatly named in a way that sorting them by file name shows them in the order they were taken. That’s perfect if you want to do something with them, let’s say… make them into a timelapse video.

Creating videos and collages from the photos

I’ve had a problem with different chroma subsampling in my JPG files giving ffmpeg a hiccup, so I now convert them to PNG before creating a video. This takes a while, but it also allows me to optionally embed a timestamp into each frame. I created a function everyday_video that allows setting the amount of photos per second and whether to embed a timestamp or not.

# creates a video with 15 photos per second and a timestamp
everyday_video 15 yes

# creates a video with 10 photos per second and no timestamp
everyday_video 10

Or how about a collage, like the one I use as my cover photo on Facebook, Twitter and ADN:

My cover photo

It’s just as easy, but the corresponding everyday_collage function has a few more parameters:

  1. How many pictures should go in each row?
  2. How many pixels should be cut from each row’s height?
  3. How wide should the final image be?

While the second parameter will often be 0, it can be quite useful when aiming for a specific width and height. Cutting a few pixels from each row doesn’t have a noticeable impact on the resulting collage but still helps to squeeze it closer to your desired dimensions.

# creates a collage with 20 photos per row, final image width 2000 pixels
everyday_collage 20 0 2000

# creates a collage with 40 photos per row, final image width 1702 pixels
everyday_collage 40 0 1702

# if the above image was a little too tall, cut a few (10) pixels from each row
everyday_collage 40 10 1702

Up Next

Those functions did only exist as a few lines of code I used to copy & paste whenever I needed it up until I realized the second year would be coming to a close soon. They are far from perfect and I have many ideas on how to improve them further. Make the font, font size and position of the timestamp in a video configurable. Let the amount of photos per second be calculated based on the desired video length. Come up with some clever math to help calculate numbers for creating ideal collages by simply entering target dimensions. If you have any input or ideas, please get in touch.