Hello and welcome to our summary of what June and July produced. The schedule of these posts drifted a bit over the months and I thought it was best to get back on track by merging two months together. We also had some vacations which didn’t help the schedule either — though we are now refreshed!
There were some great features released and I think the theme has been around polishing the user interface. Alongside this there has been some work to support more file formats and provide more system configuration options.
Progress notifications for importing, thumbnailing and analysis
GitHub issue #192
Imagine you’ve just imported/uploaded a whole bunch of photos into Photonix. How long will it be before they are visible, analysed and searchable from the user interface?
This new feature gives you visibility into what is going on in the background by showing a notification and progress bars for each step of the process. This is especially useful for new users as they may otherwise think that importing has finished; they see their photos but are unimpressed with search and filtering as this stage is not complete yet.
There are several things that happen when you import a photo — resizing to a more manageable size, analyzing colors, detecting/recognising faces, identifying places and more. Each of these steps takes a different amount of time and runs independently. There is now a progress bar for each type of processing being performed with the current item number and total. You’ll notice that some process bars like the thumbnailing move relatively quickly through the queue and others like object detection move more slowly. We also give you the option to pause tasks of a certain type if they are non-essential by clicking the play/pause button located to the right of the progress bar.
Support for HEIF/HEIC image files
GitHub issue #288
This is a feature that was requested by one of our testers PhasecoreX.
The High Efficiency Image File Format is a container format for images that aims to be a replacement for JPEG. HEIF is a container and there are different codecs that can be used within it. These usually have their own file extensions and MIME types. HEIC is a subset of HEIF.
Starting with the iPhone 7, Apple added support for saving captured images as HEIC and Android added support for it in version 9 (Pie). Whilst these mobile devices often save as JPEG by default for better compatibility with other devices and software, more and more people are turning on the HEIF/HEIC option to save storage space.
Supporting HEIF involved installing a set of utilities called libheif-examples and using them to create a compatibility JPEG for our thumbnailing and ML algorithms to use. This is similar to the way that we handle raw files by using Dcraw to create JPEG versions.
Whilst supporting new file formats is one of the least interesting development tasks, it should mean that Photonix is now a viable option for a significantly larger fraction of interested users. It seems like HEIF/HEIC is going to be around for a long time and will only grow in popularity as more devices support it.
Face recognition UI improvements
GitHub issue #285
Following on from the release of face recognition described in the last article we worked on making some refinements to the user interface side of it.
The user interface is more important for this type of analyzer than any other because it is the only one that requires the user to interact and label faces to make it useful. Tags like “Vehicle”, “Tree” and “Woman” are general enough to apply to all users but faces tagged as “Mum” or “John” are specific to the users of the library.
You can read more about the specific fixes in the issue. We’ll continue to take feedback on this and develop it further as time progresses.
Easily hide overlay items to get a clear view of your photo
GitHub issue #279
The inspiration for this improvement came about from wanting to show a photo to a friend by passing a phone to them. It is expected (on a phone especially) that you should be able to view a photo without seeing anything else on screen. It makes sense as the photo is what is important and as much of the screen as possible should be made available.
We have already implemented the most common gestures and patterns seen on mobile devices — pinch zoom, swipe etc. A single tap on the screen to hide and show overlay options is another gesture that is also ubiquitous. It is not so intuitive on a desktop but we will see what we can do to highlight this or come up with an alternative method if user testing shows it is not discoverable.
This feature was harder to implement than you might first expect. This is because it has to behave well with the existing gestures and other overlaid items that require interaction such as face labelling.
Hopefully the photo detail view is now becoming quite comparable to your phone’s built-in gallery experience and behaves as you expect it to.
Improved map view with thumbnail pins
GitHub issue #265
In the first version of our map view, we went with the most simple approach possible — show all photos as pins and then show a thumbnail of the photo when the pin is clicked. The next improvement was to cluster the pins that were very close to each other and show a circle with a number showing how many photos it represents.
Our latest major map UI change shows a tiny circular photo thumbnail right on the map instead of the pin. This makes the whole map experience more intuitive and faster to navigate. Yes, the thumbnails are small but they are usually enough for recall given that you already know the location you are looking in.
Map view has always been a way I’ve wanted to search my photos in the past so it brings me a lot of joy to see how this is regularly improving.
Custom port number configuration for Postgres and Redis
GitHub issue #267
This was a feature suggested by the user abmurksi who already had Postgres and Redis servers running that they wanted to reuse and connect to. As Photonix gains popularity people are likely to want to use it in more varied environments and alongside existing infrastructure. Configuration options like this allow an installation to adapt and be used in more organisations.
Fix for import crash when multiple photos have same subject tags
The user mkrzywonski reported a bug that was causing their photo importing to fail. After a bit of discussion around the issue and some detective work the user Fred Hoogduin stepped in and submitted a pull request — thank you!
They also submitted a couple of other pull requests for issues they found so we look forward to creating test cases for those and merging them in soon.
JS bug fix for Window.requestAnimationFrame
GitHub issue #282
This small bug was caused by the complex set of user interactions we support on the photo detail screen. We allow the user to pinch-to-zoom, swipe previous or next and more. It takes a bit of jiggling to ensure these all work well together and not interfere.
- UI re-design #294, #299 + more
- Reduce classifier job memory consumption #83
- Mobile image uploading #229
- Better timestamp date detection #249
- Improvements to photo importing when encountering strange metadata PR #298 and PR #303
- Manual photo rotation #211
Hopefully you enjoyed this update — I’m keen to know what interested you the most.
I have some larger things I want to start overhauling soon, notably the UI and how system resources are utilised. There has been some suggestion that the user interface is too complex or geeky so I have some plans to simplify some things there and make the mobile experience first class. Users have also experienced some performance issues importing large numbers of photos and I have a plan to make sure the background image analysis always stays within the usable system memory boundaries. Hopefully you will see these starting to bear fruit by next month.
In terms of development resources, I am planning to reduce the number of days a week that I do client work to allow me to concentrate on these larger and more complex parts of Photonix. Unfortunately this means that I won’t be able to continue hiring Gyan, our contractor, during this time. He’s done an amazing job in the last eight months and has really pushed the project forward, helping to build momentum. He’ll be sorely missed but hopefully we can hire him again when funds allow.
On the topic of funding, you could really make a difference to our progress if you are able to support us in any way at all. We now have a Patreon page as well as GitHub Sponsors. If all our potential users were to chip in a couple of quid or dollars each month then I think the project would be set up for a great future. If you know anyone who is interested in funding open source software with an interest in photography then please do share the links.
More generally, if you can think of someone that would just be interested in Photonix, please do tell them about us. The success of this kind of project really does depend on word of mouth.
Thank you for your time,