2007-11-17

Future photos

I do a lot of digital photography, and as a student of programming, I have lots of ideas about software which would be useful for dealing with my photos.

I am currently studying zope component architecture via some editing of Baiju's book, I would like to begin a project applying ZCA to a real issue.

So, given ShotInFuture.jpg an image with a bad date::

>>> import ZCAImageTool
>>> batch = ZCAImageTool(storage=memory)
>>> imref = batch.add('ShotInTheFuture.jpg')
>>> print imref.filedate(year), ' ', imref.exifdate(year)
2008 2008

>>> imref.filedate(year) = imref.exifdate(year) = 2007
>>> print imref.filedate(year), ' ', imref.exifdate(year)
2007 2007

I really want to change all the files::

>>> batch.clear()
>>> batch.add('/home/ktenney/photos/nextyear')
>>> batch.filedate(year) = batch.exifdate(year) = 2007
>>> print batch.filedate(year)
2007

batch.filedate(year) would have some smarts::

>>> batch.filedate['bad.jpg'] = 2008
>>> print batch.filedate(year)
Mixed batch.
bad.jpg = 2008, others = 2007

I would like to lure Baiju and anyone else that might be interested, into helping put code behind these tests. The process would involve, among other things;

- deciding what existing interface to extend
- designing the interface
- writing the date/EXIF code in a ZCA-agnostic style
- registering the components
- ...

Background item #1
==============

My wonderful old Nikon Coolpix 990 has a dead memory battery, so every time I change the AA batteries I need to reset the date and a few other things. I tend to hurry through the setting process.

It turns out the latest batch of photos I've shot were shot in 2008. The photos are landscapes and such, no stock reports or newspapers, so I have nothing to gain by this glimpse into the future. It will, however, foul up photo managing software, where linear time is assumed.

So, I want to reset the year on the files, both on the file and in EXIF.

Background item #2
==============

A few years back I read some posts about a project that a C++ coder was doing, a tutorial based on email exchanges with a student learning C++ from scratch. I only followed it briefly, but I really liked what I read, and have continued to consider it a really effective approach, a revealling examination of the learning process.

No comments: