I like taking pictures. How many pictures?
Well, you know, some.
$ find ~/pix/cam -type f | wc -l
10167
$ du -sh ~/pix/cam
47G ~/pix/cam
That does not include pictures taken on my various mobile phones. And how many have I printed? Well, I think I have less than twenty framed. And I made two photobooks, and I’m not sure when I looked in them last. 😬
I try to finesse them down, weed out the crap (there’s a lot of bad pictures), crop, enhance, etc. And that’s hard and is a never-ending job and I’m just looking at them on my computer then, and my wife doesn’t see them at all.
So, let’s show ’em off. This is a solved problem right? Right?
The problem
My requirements:
- Get photos from my network - no cloud thanks. I’m not uploading them to download them again, my data is my own, and my broadband is metered1
- Show them big
- Show them in hi-res
- Show them with a nice viewing angle
- Show some EXIF data - location or date/time2
- Ideally, read my digikam database which already has a lot of metadata extracted already
Wrong. There’s one or two getting better now but there’s quite a few there below 10 inches and/or 1080p. And everything appears to offer the cloud or pissing about with a USB drive.
The solution
I’ve tried to solve this once or twice before. Not, perhaps, nicely.
SELECT ar.specificPath || a.relativePath || "/" || i.name AS path, i.id
FROM Images AS i
JOIN Albums AS a ON i.album=a.id
JOIN AlbumRoots AS ar ON a.albumRoot=ar.id
WHERE i.id NOT IN (SELECT imageid FROM ImageTags WHERE tagid='ignore' OR tagid='delete' OR tagid='exist')
AND (lower(i.name) LIKE '%.jpg'
OR lower(i.name) LIKE '%.nef')
ORDER BY RANDOM() LIMIT 2;
Here’s the query from a Django app I wrote that would select pairs of images and then ask the viewer to select a preference. My attempt was to (oh so very slowly3) bubble-sort out my favourite images.
This was never particularly serious but did allow me to work out the what-even-is-art of my pictures. Some I keep because I took a picture of something important, to remember it. Some because they are pretty. And some for both reasons.
And I still wasn’t looking at the pictures! I visited this again a few years back with a RPi Zero and made a solution that I basically forgot, and then made the same mistakes on the one I’m about to describe here. It showed pictures but sloooowly rastered them to a screen and I found it irritating.
Then over Christmas, after “some” months in lockdown, I decided to take an old laptop with a nice-enough screen, and do better…