Scanning the family albums


Our family has a limit of spending per member of 100NOK for our Christmas gifts. Of course I want to give something cool, and an idea formed in my mind. After a flooding last year destroyed some photo albums, I've wanted to preserve these digitally. Having photos digitally makes sharing of previous memories simpler, everybody can have a copy!

With this in mind I formulated my plan. I'm going to scan all the photos, crop them, and share them on a self-hosted instance of a photo gallery.


  • A Canon Canoscan LiDE 220 bought on for 600NOK
  • A webserver to host the content

The scanner can be resold after the project, which will probably net me 500NOK in return. The webserver is a ROCKPro64 from pine64, in which 8TB of hard drive space in RAID1 mode is connected, giving 4TB of usable space. Plenty for a couple of images.



I wrote a minimal frontend around SANE in Rust. This sets the resolution for scanning the document, and polls the SCAN button to scan the next image. One can probably use any scanning software, but I wanted to learn a bit regarding scanner protocols.


A lot of the images comes in a standard format, which allows four images to be scanned at the same time. This can be split into four separate images using

convert in.png +repage -crop 2x2@ +repage out_%d.png

which might save a bit of time at a later stage. This turned out not to be worth it, as no images were really the correct size, and GIMP worked decently snappy for cropping the images.


To host the photos I've looked at various open-source options. Lychee was tested by setting up the infrastructure and choosing some small subset of images. Lychee seems very user-friendly, and allows tagging of photos and searching through all the albums. The community is also very nice, and my pull request for adding Norsk Bokmål was quickly accepted!


The image editing tool GIMP was used for cropping all the images. The context menu on right click along with keyboard shortcuts meant 4 images could be split in a short amount of time.

The scanning

Scanning was mostly performed by placing the photos in the corners and pushing Scan on the scanner. For resolution I selected 600DPI, a good compromise between size and scan time (40s per plate) and quality. The result of this step is 462 uncropped scans, totalling 26GB. Some photos were large enough to require their own scan, so I estimate a total of 1500 photos. The steps detailed here took about two weekends and some evenings (25 hours?), mostly with the dull activity of waiting for the scans to complete.

The mess when scanning...

The presentation

All the images were deployed to the Lychee instance, resulting in 17 different albums, containing pictures of my grandparents, us, and many pictures of my father when he was younger. Both my parents, and all my siblings received a cute Christmas card with their username and password, and much was had in looking through these pictures.

All in, this project took about 50 hours, and was well below the stipulated cost. Now, what project should I take on for next Christmas?

The finished work