Un photographe, insatisfait des solutions logicielles existantes, a développé un programme maison nommé Phloto pour simplifier son flux de travail photographique. L'outil, dédié à un usage strictement personnel, répond à des problèmes récurrents de gestion des métadonnées, de portabilité entre appareils et de lourdeur des transcodages.
Un flux en plusieurs étapes
Le processus de développement numérique d'une photo commence par la prise de vue et l'obtention d'un fichier RAW, plus riche en données que les formats web. Vient ensuite le développement de ce fichier à l'aide de logiciels comme Darktable ou RAWPower, qui permet des réglages de recadrage, d'exposition ou de balance des blancs. Une fois la photo développée, un fichier PNG 16 bits sans perte est exporté, pouvant atteindre plus de 100 mégaoctets. La troisième étape consiste à transcoder cette image pour le web, en la convertissant dans un format plus léger comme le WebP, et en créant des versions réduites. Enfin, l'auteur rédige des légendes et des textes alternatifs pour chaque image, qu'il tente d'intégrer comme métadonnées dans le fichier.
Des difficultés avec les solutions traditionnelles
Initialement, l'auteur utilisait Darktable, RAWPower et Hugo, le générateur de site statique, pour ces différentes étapes. Plusieurs problèmes ont émergé. La première difficulté était la portabilité : Darktable n'étant pas disponible sur iPad, l'auteur devait utiliser un ordinateur, ce qu'il percevait comme une contrainte psychologique. L'acquisition d'un iPad pour traiter les photos sur le terrain a rendu nécessaire un outil accessible depuis ce dernier. Ensuite, des pertes de métadonnées sont survenues : RAWPower et Nitro ne transmettaient pas toutes les informations depuis le fichier RAW vers le PNG développé. De plus, Hugo échouait parfois à extraire les métadonnées Exif des fichiers PNG et WebP, empêchant une récupération automatique des légendes. Enfin, l'étape de transcodage, effectuée par Hugo, était longue et gourmande en ressources. Avec deux galeries d'images, la reconstruction du site prenait environ quatre minutes, faute de mise en cache correcte.
Phloto : un programme « plante verte »
Pour surmonter ces obstacles, l'auteur a créé Phloto, un programme qu'il qualifie de « houseplant software », ou logiciel « plante verte », c'est-à-dire un outil qui nécessite un entretien minimal et n'est destiné qu'à son créateur. Les exigences étaient claires : être accessible depuis un navigateur web (pour fonctionner aussi bien sur iPad que sur ordinateur), permettre l'édition des métadonnées Exif (titre et description) et réaliser le transcodage en filtrant les métadonnées sensibles (comme les coordonnées GPS). Phloto est décrit comme un assemblage de code non testé reliant un serveur HTTP, des codecs d'image et une bibliothèque Exif modifiée.
Fonctionnement spécifique
L'outil utilise une approche de modification non destructive des métadonnées. Il ne modifie jamais les fichiers RAW ou les images développées. Au lieu de cela, il lit les métadonnées à partir de trois sources, par ordre de priorité : un fichier web existant, l'image développée (PNG), puis le fichier RAW. La valeur la plus prioritaire est retenue. Lorsque l'utilisateur modifie les métadonnées, Phloto génère un nouveau fichier web, ce qui place cette nouvelle valeur en tête de la hiérarchie. Pour éviter des transcodages intégraux à chaque modification, le programme est capable d'ouvrir le conteneur WebP sans décoder l'image, de remplacer uniquement les données Exif, puis de réécrire le fichier. Cette astuce permet de gagner un temps de traitement conséquent.
Utilisation de htmx
L'interface web de Phloto utilise htmx, une bibliothèque JavaScript qui permet de créer des applications web dynamiques avec un minimum de code. Selon l'auteur, cette approche fonctionne « remarquablement bien » pour son cas d'usage. Pour l'avenir, il envisage d'ajouter des fonctionnalités comme le redimensionnement à la demande et des vues de tri ou de filtrage des images. L'ensemble du code source est accessible publiquement, mais l'auteur précise qu'il n'est conçu que pour lui-même et déconseille son utilisation par d'autres.