Building a high-performance image library with Claris FileMaker.
--
I have many images scattered over many devices, storage systems and photo handling Apps. I also get pretty fed up when the one I relied upon stopped being supported i.e. iPhoto then Aperture.
I suspect that I am not alone?
How could I consolidate a single good copy of each of my images into a system which would not be deprecated in several years time, which I could use long term, so all those great images don’t disappear?
Digital images, despite their apparent permanence are potentially much more transient than paper images because they can become lost or inaccessible so easily in the future.
Having recently noticed several proprietory devices offering this sort of service suggest that this is a common problem.
As a Claris FileMaker Developer specialising in performance, I wondered whether I could do this in FileMaker, or could I find a better solution? How efficiently would FileMaker handle large numbers of images?
Problem specification
Specifying the problem and some key requirements seemed the best place to start:
- It must be efficient enough to host it online so that I could open my image library on my phone or other device wherever I was;
- It should automatically remove duplicates so that I retained the best available copy of each image;
- I should be able to give other people access if I wished;
- It should remain useable for the forseeable future and should give me easy manual access to the images as a failsafe.
The plan
After some experimenting I decided that this was how it should work:
Stage 1: we use the rsync Application running in Terminal to copy all the image files we want out of the various places they are stored into a single folder we will call IMG_SOURCE.
Stage 2: we use FileMaker’s ability to iteratively import everything contained in a series of nested folders to import all the image files from IMG_SOURCE. Whilst doing this we would automatically create a reduced resolution copy of each image big enough for normal use online to…