Tri et diffusion des images (2019)

Ce document existe en plusieurs versions conservées pour ne pas casser les liens, ici la version octobre 2019

1.  Traitement des images

1.1  Scanners

Les scanners de films et diapos de bonne qualité n'ont jamais été bon marché, mais on pouvait les revendre après usage. Les occasions sont devenu rares et douteuses, les appareils étant de plus en plus vieux. Les fabricants ont du constater que les vrais amateurs ont déjà scanné leur collection car on ne trouve plus en neuf que des scanners bon marché mais avec une qualité à peine suffisante pour la publication sur le web.

Il est vrai qu'il n'y a plus guère d'utilisateurs de film, mais les collections retrouvées sont encore assez nombreuses. On peut alors se tourner vers quelques scanners à plat acceptant les transparents qui sont abordables, ou se tourner vers la numérisation de films avec un appareil photo numérique qui n'est pas si facile qu'elle en a l'air et ressemble à la duplication de diapositives bien connue des anciens.

1.2  Stockage

Je dirais d'abord qu'il faut impérativement stocker les images telles qu'elles sont sorties de l'appareil photo numérique ou du scanner. Il est trop facile de perdre un fichier par effacement ou mauvaise édition. Il est possible d'effacer des vieilles "versions originales", pour économiser la place (en particulier les fichiers raw) si on est sûr qu'on ne va plus jamais chercher à les retoucher différemment de l'existant.

Tout ceci pour dire qu'un cd ou au mieux un DVD sont largement suffisants pour stocker dix années de production d'un amateur, ne lésinez pas, stockez tout. Les disques durs modernes sont bon marché, mais il faut les dupliquer au moins deux fois car un disque meurt sans prévenir et totalement. Les ssd modernes n'ont pas très bonne réputation sur le plan de la conservation débranchés. A tord ou à raison.

Pour ne rien perdre, utilisez des répertoires numérotés en fonction du jour, le format aaaammjj est excellent (20051202, par exemple) tant que vous ne faites pas plus de deux mille photos par jour. Pour des quantités de raisons techniques, il n'est pas recommandé de mettre plus de 2000 fichiers dans le même répertoire (environ). Le format normalisé est aaaa-mm-yy (avec les "-" en plus). Quand je ne connais pas la date des photos, j'utilise la date de scan. Quand je ne connais pas la date du jour, ou même le mois, mais que je connais l'année, je remplace les chiffres par "0", par exemple 20190800 c'est en Août 2019 mais je ne sais pas quel jour (ça permet de garder l'ordre alphabétique).

1.3  Premier traitement: normalisation et anonymisation

Après avoir recopié les photos et les avoir triées par date dans le répertoire destiné aux originaux, j'en fais une copie vers le répertoire où je vais faire les retouches.

Une fois là, je passe un premier script qui va "normaliser" les noms des fichiers et les "anonymiser". Selon la source des photos, le nom des fichiers peut être bizarre, en particulier avec les photophones ou les scanners. Les fichiers ont des noms séquentiels qui les rendent facile à deviner, ensuite, sur le web, par les robots. J'ai des photos privées et je ne veux pas qu'elles soient indexées trop facilement, j'ajoute donc un nombre aléatoire au nom du fichier. Le script est le suivant:

#!/bin/sh
# usage: se placer dans le répertoire
#lancer "sh normalize-randomize-photo.sh"
#On se retrouve avec les fichiers anonymisés et normalisés

for I in *.jpeg ; do
	rename -- "jpeg" "jpg" "$I" ;
done
for I in *.JPG ; do
	rename -- "JPG" "jpg" "$I" ;
done
for I in *.jpg ; do
	ran=-$RANDOM ;
	rename  -- "." "$ran." "$I"
done


detox -s utf_8 *

Il faut, bien sûr, exécuter le script dans le répertoire des photos.

Detox (http://detox.sourceforge.net/) est un utilitaire qui supprime du nom d'un fichier tous les caractères souvent mal acceptés par les applications, comme les espaces, les ponctuations... Ensuite je met en minuscules toutes les extensions et j'ajoute le nombre aléatoire.

Mettre les variables entre guillemets autorise les espaces dans les noms de fichiers, et mettre detox à la fin simplifie le problème des fichiers ayant, après détoxage, le même nom car avec la partie random ca ne se produit plus.

1.4  Classement et indexation

Travaillant sous Linux, j'ai testé beaucoup de produits et, pour l'instant, je me suis fixé sur digiKam, le produit de gestion d'images de Kde. Donc j'importe dans digiKam mes photos brutes (en bref ca veut juste dire que je les copie avec Dolphin dans les albums de digiKam), je les indexe ("tags"), j'efface toutes les photos qui sont mauvaises ou insuffisantes (il y en a beaucoup en numérique ou presser le bouton ne coûte rien), je les retouche.

DigiKam utilise des répertoires ordinaires pour stocker ses images, on peut donc intervenir sur les photos avec n'importe quel outil.

1.5  Retouche

Retoucher une image sur GIMP ou Photoshop avec soin prends facilement une demi-journée. On peut donc penser que la plupart de vos retouches seront sans soins :-).

Je fais mes retouches à partir de digiKam. Son module de retouche s'appelle showFoto, il est pourvu de tous les outils basiques de gestion des dimensions de l'image et des couleurs, par contre il ne permet pas la retouche point par point.

Pour tout ce que ne fait pas digiKam ou pour le travail plus précis, j'utilise GIMP.

1.6  Commentaires

DigiKam permet de créer de nombreuses catégories mais je ne m'en sert plus. Quand j'ai arrêté de m'en servir (je ne sais pas aujourd'hui), les catégories n'étaient conservées que dans la base de données et cette base est facilement perdue, vu que c'est un fichier indépendant des photos.

On peut ensuite voir, éditer ou exporter les images par répertoire ("album").

On peut enregistrer les commentaires "dans le champ commentaire des exifs de la photo". Plus exactement dans le champ 0 de la catégorie commentaires.

Ce commentaire est affiché ensuite lors des exports, mais aussi stocké avec la photo (c'est le rôle des exifs). Par contre, les exifs ne sont pas très standard et j'ignore s'il est facile de récupérer ces commentaires dans un autre logiciel.

DigiKam exporte aussi dans des galeries photo pour le web. La mise en page n'est pas très élaborée, mais il est relativement facile de modifier les fichiers html pour leur faire utiliser des feuilles de style plus complexes (à la main). Des plugins existent pour beaucoup de galeries photo, je ne m'en sert pas.

La seule façon de conserver tout ce qui est commentaire et assimilé est de l'enregistrer dans la photo, aucune base de donnée extérieure n'est commune à tous les logiciels, pas même les fichiers xml associés aux photos.

Ma galerie photo web (Piwigo) n'enregistre pas les commentaires dans les méta données et ils n'ont donc pas d'existence en dehors de Piwigo. Il faut donc tout faire dans digiKam avant de télécharger les photos.

2.  Préparation pour Piwigo.

2.1  Principe

Pour l'essentiel, les photos doivent être téléchargées sur le site web par ftp (ou analogue, comme fish) avant d'être prises en compte par Piwigo.

Ces photos doivent être stockées dans un sous répertoire de Piwigo, dossier "galleries". Dans ce dossier galleries, tous les répertoires et sous répertoires sont considérés comme des galeries "physiques" de Piwigo. Il est recommandé que les répertoires de niveau supérieur soient juste des containers (ne pas mélanger sous-galeries et photos).

Il n'est plus nécessaire de créer les vignettes, Piwigo s'en charge lors de la première lecture.

2015 je ne réduis plus les images depuis que j'ai 2To de place disque, tant pis s'il faut attendre un peu pour l'upload... et en 2019, avec la fibre on attends plus guère.

2.2  Copie des photos vers Piwigo

Le plus simple est d'utiliser Dolphin avec le protocole fish. Il suffit alors de copier le répertoire préparé et de le coller dans galleries, au bon endroit.

Compter environ 2h/Go de fichiers en adsl, 10 fois moins en fibre.

Ne pas oublier de synchroniser la base de données dans Piwigo, sinon on ne voit rien. Aller sur administration et utiliser le gros bouton.

2.3  Catégories et permissions

Permissions

Il n'est pas si évident de placer les bonnes permissions, surtout si on doit le faire sur beaucoup d'images.

Déjà, il est bien préférable de séparer les images publiques des images privées, le plus sûr est de mettre un mot dans le nom du répertoire ("prive", "perso"...).

Créer autant de groupes que de catégories de permissions que vous voulez utiliser. par exemple j'ai un groupe "ne jamais partager"... on place alors les usagers dans le groupe voulu.

Si on s'occupe des permissions dès le téléchargement, donc quelques répertoires à la fois, il est simple d'attribuer un groupe (ou plusieurs) à un répertoire.

Créez un groupe "guests" pour les utilisateurs non enregistrés. Chaque groupe ne voit que les images qui lui sont attribués. Si, par exemple, vous avez un répertoire "soirée_du_24_Aout", vous pouvez créer un groupe du même nom et ceux qui se connecteront ne verront que ces photos, pas même les autres, publiques, que voient tous les gens non connectés qui sont les "guests" (invités, en français).

Amélioration

Mais outre ces tentatives pour simplifier le processus à destination du plus grand nombre, pour faire ce que tu veux, il y a une vraie et bonne solution pour tous les utilisateurs qui en veulent plus:

[extension by P@t] LocalFiles Editor, installée, activée

Puis dans LocalFiles Editor, premier onglet ( Configuration locale ), ajoute à l'intérieur:

    $conf['newcat_default_status'] = 'private';

Ainsi lors de l'ajout par pLoader, ou la synchro (accessoirement par le gros bouton), toute nouvelle catégorie sera privée sans le moindre droit d'accès (pas même pour l'administrateur), dès lors tu pourras choisir de donner des autorisations via des groupes ou placer la catégorie en publique.

3.  Organisation du classement

3.1  Principe pour la galerie

C'est une partie délicate car elle doit tenir compte à la fois de la mise en page de la galerie en ligne et de la gestion des archives.

J'ai choisi dès le départ de classer par ordre chronologique, mais les vidéos étaient rangées ailleurs. Même si maintenant elles sont gérées par Piwigo, il me parait plus logique de les séparer, une vidéo ne se regarde pas et ne se publie pas comme une photo.

Puis, maintenant, je scanne les archives familiales. Il s'agit bien d'images jpg, mais pas de photos. Je scanne des documents, du texte... Et là, je cale un peu.

L'ordre chronologique doit il être celui de la création des documents, qui semble logique mais la date n'est pas toujours connue, ou pas de façon exacte, ou celle du scan?

Au début, j'en avais peu, je triais avec les photos. Maintenant qu'il y en a beaucoup, ca me parait génant, je vais faire une catégorie bien à part.

Ajoutons qu'il faut quelque part un emplacement pour les photos, vidéos ou documents totalement privés et qui ne doivent pas être portés à la connaissance du public (papiers d'identité en cours, par exemple), mais qu'il peut être très utile de récupérer un jour de n'importe où.

3.2  Principe pour le travail local

Les photos et les documents sont traités essentiellement comme des photos seul change vraiment la source (appareil numérique ou scanner). Par contre les vidéos sont traitées à part.

L'archivage est plus complexe.

J'ai près de 3Go d'archives au total. Comme c'est un volume variable (et croissant), il faut être au large. Je suis donc obligé d'utiliser plusieurs disques.

En pratique j'ai un disque de travail, celui d'origine de l'ordinateur, de 1To, qui me sert pour le travail en cours. Comme je suis parfois obligé d'utiliser un double boot Windows, le disque est divisé en plusieurs partitions. Résultat, avec le travail en attente, j'ai actuellement moins de 40Go de libre...

j'ai maintenant trois disques externes usb3 de 4 ou 5To que j'utilise par roulement. L'un d'eux est posé à côté de moi et de l'ordinateur, il est connecté en permanence, mais pas forcément toujours allumé.

À côté, j'ai un des deux autres disques. De temps en temps (selon l'humeur), je l'allume, je le branche et je fais une copie du premier disque. Le troisième disque remplace le deuxième tous les mois environ, le disque remplacé est stocké à l'autre bout de la maison, dans l'espoir qu'il ne soit pas aussi volé ou détruit par un incendie en même temps que les deux autres.

4.  Gestion pour le blog

4.1  Principe

J'ai pris l'habitude de commenter mes voyages touristiques en agrémentant mes commentaires d'extraits de la galerie photo. Cela m'oblige à beaucoup trier, passer de quelques centaines de photos à quelques dizaines, à réduire la taille maxi des images et à écrire la syntaxe d'images pour mon blog, sous PmWiki.

4.2  PmWiki

PmWiki, comme son nom l'indique, est un wiki, c'est à dire un logiciel en ligne qui permet d'écrire directement en ligne une page web. Ce n'est pas le plus beau, mais un des plus simples à gérer.

Cependant si on veut une gestion des images correcte, c'est quand même un peu lourd. Du coup j'utilise un script pour faire la mise en page et j'upload les images directement ver le répertoire ad hoc.

4.3  Taille des images

Pour que le blog soit simple à lire, il faut des illustrations petites. Je met en ce moment une hauteur d'image standard de 200 pixels. Il faut aussi avoir accès à des images plus grande, mais pas nécessairement énormes car les navigateurs ont tendance à charger ces images à l'avance et une grand image est une charge pour le réseau.

J'utilise un petit outil de kde, qui s'appelle "kim". Kim installe un menu contextuel dans Dolphin, le navigateur de Kde, qui m'offre entre autres le choix de réduire les images à 1024x768, ce qui me va très bien. Il faut donc sélectionner les images, faire un clic droit et choisir la bonne dimension.

4.4  Le script

#!/bin/sh
# written in march 20 2017 by Jean-Daniel Dodin
# feel free to use at will

# this script takes a list of photo files (regexp) and
# makes a txt page to be copied to pmwiki

#faire d'abord en ligne de commande (il peut y avoir divers formats d'images)

#rename ".JPG" ".jpg" *.JPG 

for I ; do

#trace du travail
echo $I ;

#ajout du lien dans l'index
echo -e "%newwin height=200%[[Attach:"$I"|Attach:"$I"]]%%\n" >> pmwiki.txt ;

done ;

Ce qui donne comme résultat une série de lignes dans ce genre:

 %newwin height=200%[[Attach:Screenshot_20191019_150043.jpeg|Attach:Screenshot_20191019_150043.jpeg]]%% 

%newwin% permet d'ouvrir la grande image dans une autre fenêtre et donc de ne pas perdre l'utilisateur.

Il n'y a plus ensuite qu'à organiser le texte et les photos

5.  Galerie vidéo

5.1  Choix de la galerie

J'ai un nombre non négligeable de vidéos et je veux que la plupart restent privées, je ne veux donc pas utiliser Youtube et ses comparses. J'ai essayé plusieurs "clones de Youtube", et j'en ai même installé et utilisé un plusieurs mois, mais en définitive ça ne va pas, il y a soit des difficultés techniques (bogues...) soit des fonctions qui manquent.

Il y a aussi des plugins dans Wordpress, mais ça m'obligerait à dédoubler le système de mot de passe.

En définitive, ce qui marche le mieux c'est le plugin de Piwigo (Charlie's content, mais il y en a d'autres).

5.2  Edition des vidéos

Le cas des vidéos est très différent du cas des photos. Il n'y a à peu près aucun risque de recopier une vidéo modifiée sur le fichier original, et les vidéos sont extrèmement volumineuses.

Les originaux sont en général découpés en fichiers de taille au plus égale à 2Go (pour des raisons de système de fichiers sur les supports d'enregistrement). C'est très bien et il faut essayer d'en faire autant. Les logiciels qui, d'autorité, regroupent en un seul gros fichier les originaux sont à proscrire absolument, un jour ou l'autre cela pose des problèmes insolubles.

Notez que pratiquement à chaque fois il y a une image perdue à la coupure. Chaque fichier conservant environ 10 minutes de vidéo (à la meilleure qualité), pensez à couper un peu avant et un peu après à la prise de vue si la perte d'une image est gênante.

Ma pratique est le film de concerts. De courtes séquences prises pendant les vacances ne posent presque aucun problème d'édition, il faut juste couper les parties mauvaises. Le tournage de film de fiction n'est à peu près pas de ma compétence.

Un concert est composé de séquences (morceaux de musique) séparés par des temps morts. Il est filmé en continuité, la caméra tourne du début à la fin, ou en séquences longues. Il peut être tourné à plusieurs caméras.

Le résultat est ensuite exporté sous forme de fichier mp4 soit de qualité maxi soit de qualité web, le volume n'est pas le même.

5.3  Logiciel d'édition.

Ètant un amateur de Linux (openSUSE), j'utilise des outils libres. Il y a longtemps que j'utilise avidemux (édition basique de petits fichiers, analogue à VirtualDub sous Windows), HandBrake (conversion de dvd ou autres vers mp4), et en ligne de commande ffmpeg.

kdEnlive est devenu le meilleur logiciel d'édition vidéo sous Linux. En 2019 j'ai essayé la version gratuite de DaVinci Resolve, un poids lourd de l'édition vidéo, impressionnant de vitesse, pas trop complexe, mais je n'ai fait qu'effleurer l'usage. Existe pour Linux.

Tant qu'il n'y a qu'une caméra, il faut charger un clip, si nécessaire rajouter derrière un deuxième clip, trouver le début de la scène, couper et enlever tout ce qu'il y a avant, trouver la fin, couper tout ce qui est après et exporter. Par défaut j'exporte en mp4 haute qualité, soit 12000Mb/s.

Numérotez les fichiers YYYYMMDD-sujet-NN-titre.mp4, soit année, mois et jour, comme sujet un aide mémoire de l'endroit ou de l'artiste, NN le numéro d'ordre du clip dans le spectacle, titre si vous le connaissez...

5.4  Publication des vidéos

Là, il n'y a pas création automatique des vignettes, il faut donc penser à les faire soi-même. Il n'est pas possible non plus de téléverser des formats trop encombrants, d'où mon choix du mp4, géré par tous les navigateurs modernes.

Les premiers fichiers que j'ai eu à convertir étaient des MOV, d'où le nom du script (movtopiwi-16x9.sh).

#!/bin/bash
# echo usage: movtopiwi.sh *.mp4
# Faire d'abord detox -s utf_8 *

rep=$(basename `pwd`) ;
mkdir $rep ;
mkdir $rep/pwg_representative ;

for a ; do
echo "traitement de " $a;
	b=`echo "$a" | cut -d'.' -f1` ;

ffmpeg -i $a -af loudnorm -ar 44100 -b:v 1000k -movflags faststart  $rep/$b.mp4 ;
	ffmpeg -i $a -r 1 -t 00:00:01 -ss 0:0:05 -s 1920x1080 -f image2 $b.jpg ;

	convert -resize 128x128 $b.jpg $rep/pwg_representative/$b.jpg ;
	rm $b.jpg ;
done
exit

Ma gestion des vidéos est un peu différente de celle des photos, j'en parle ailleurs, cela se reflète dans le script. Celui-ci crée le répertoire des vignettes et le remplit un peu au hasard, avec une image à 10s du début (du coup, ca ne marche pas si le clip fait moins de 10s), il redimensionne la vidéo en 1000kb/s et copie tout ça dans un répertoire ad hoc.

6.  Autres pages

Videos (MOV) et Piwigo

Ajouter des photos (à l'unité).

Installation de Piwigo

Piwigo plugin tags categories (ping-pong)

Permissions dans piwigo(ping-pong)

configuration locale:

http://dev.piwigo.org/doc/doku.php?id=pwg2:utilisation:fonctionnalites:conf_locale

7.  Adaptation

7.1  Ajouter mes liens vers les autres pages en haut

http://fr.piwigo.org/forum/viewtopic.php?pid=155698

Il faut faire une template extension de "index.tpl".

Recherchez le bloc : Code:

{if !empty($category_search_results) } <div style="font-size:16px;margin:10px 16px">{'Category results for'|@translate} <strong></strong> :

  <em><strong>
  {foreach from=$category_search_results item=res name=res_loop}
  {if !$smarty.foreach.res_loop.first} — {/if}
  {/foreach}
  </strong></em>

</div> {/if}

Ajouter au dessus de ce bloc le ligne : Code:

{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}

:-)

nickel, merci

je récapitule, pour les autres:

Dans:

themes/default/template/

trouver index.tpl

recopier ce fichier dans template-extension. J'ai préféré changer le nom (->index_ext.tpl)

Aller dans la galerie comme administrateur, configuration, templates. Mettre la liste à jour (recharger la page) on doit voir index.tpl dans la liste.

La rattacher au thème voulu. Ca ne marchait pas comme je voulais, du coup j'ai désactivé (menu configuration/thèmes) toutes les templates sauf "dark" et j'ai attribué la modif à dark.

Il est sans doute possible de créer trois fichiers de noms différents avec le même contenu, pour les attribuer à chaque thème.

Ensuite j'ai fait la modification proposée par Gotcha avec le plugin LocalFile Editor, pour ca il faut que le fichier puisse être écrit (attention, le message d'erreur est incorrect - ce n'est pas le répertoire include qui doit pouvoir être écrit, mais le fichier index_ext.tpl).

et merci à Gotcha

jdd

7.2  Catégories dynamiques (ping-pong)

http://dodin.org/wiki/index.php?n=Photo.PiwigoPluginTagsCategories

Ajouter dans le nom

Pour masquer le compteur, mais il faut rajouter plein de choses: <!--hide-counters-->

Mieux vaut sans doute se limiter à

<!--Dynamique-->

pour qu'on reconnaisse la catégorie dans les menus internes.

Dans le commentaire de la catégorie:

Ceci est une catégorie dynamique
<!--more--><script type="text/javascript">
self.location.href='http://dodin.org/piwigo/index.php?/tags/242-neluce';
</script>

Attriber l'image "Catégorie dynamique" comme associée (dans maintenance, image...) - c'est essentiel pour la gestion des permissions.

Ne pas oublier non plus d'attribuer la catégorie à l'utilisateur jdd_admin et aux groupes concernés (le cadenas, dans l'écran de catégorie).

8.  Le plugin digikam

8.1  Principe

Les images sont téléchargées dans une arborescence upload (dans la racine de piwigo), dans des répertoires dépendant de la date de téléchargement. Le nom de l'image n'a plus aucun lien avec le nom original (Il est placé dans les exifs, mais c'est quand même génant, on ne sait plus d'où elle vient quand on regarde le répertoire!) et il faut que le nom de la galerie cible soit créé à l'avance dans piwigo (réelle ou virtuelle), le plugin ne sait pas faire.

Tout ce que fait le plugin est de créer la vignette et uploader une image réduite (c'est réglable - l'image est de toute façon recomprimée, elle garde sa taille mais la compression est plus élevée que l'original - le poids en octet est réduit à peu près de moitié), pas d'image haute résolution et aucune façon évidente d'en rajouter une.

http://fr.piwigo.org/ext/extension_view.php?eid=351

8.2  Effacer une photo ajoutée avec le plugin digikam

Aller dans la gallerie qui publie les images, afficher l'écran "éléments" (ou on peut sélectionner les images individuelles). S'il y a des images chargées de cette façon, il y a aussi un menu effacement (qui ne vaut que pour elles).

8.3  Fantaisies

9.  Les outils externes pour Piwigo

9.1  Ploader

Je n'arrive pas à le faire fonctionner sous Linux openSUSE

9.2  jiwigo

pas mieux

http://www.le-guevel.com/jiwigo/

9.3  Linuxtopiwigo

pas mieux

10.  Migrer de piwigo ancien vers récent

Depuis quelques temps piwigo se débrouille seul pour faire les versions de photos de tailles différentes et les imagettes. Mais si vous aviez l'ancienne version, il faut vous débarrasser des anciens répertoires thumbnail et pwg_high.

Avec l'aide de mes amis du CULTe j'ai écrit quelques lignes de code. Un script script-pwg-high.sh qui contient

#/bin/sh

rep=$(dirname $1)
mv    $rep/pwg_high/* $rep/
rmdir $rep/pwg_high/

En mettant ce script dans le répertoire "gallerie"

 find . -type d -name 'pwg_high' | xargs -l  ./script-pwg-high.sh

va régler le problème du répertoire pwg_high en recopiant les images en haute définition et en supprimant pwg_high

 find . -type d -name thumbnail | xargs rm -r

supprime toutes les imagettes et leur répertoire.