Tri et diffusion des images (2013)

Ce document s'appelait à l'origine "Piwigo", je l'ai d'ailleurs gardé sous ce nom pour références, mais en particulier depuis la version 2.5 la préparation des images a changé et, de plus, il faut que je revoie l'organisation du classement.

Traitement des images

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.

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.

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.

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 cent photos par jour. Pour des quantités de raisons techniques, il n'est pas recommandé de mettre plus de 200 fichiers dans le même répertoire (environ).

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.

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, 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 coute 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.

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.

Commentaires

DigiKam permet de créer de nombreuses catégories (sans rapport avec le stockage) et d'attribuer très facilement ces catégories (un nombre quelconque) à chaque photo.

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

De la même façon, 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, sauf celui ci-dessous.

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).

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.

Préparation pour Piwigo.

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).

J'ai écrit un script pour réduire la taille des photos à une valeur qui ne soit pas trop forte pour mes capacités de téléchargement (bande passante en "upload" de 1Mb/s).

Ici, les images utilisées auront une dimension maximale de 1920, le plus souvent x1080, environ 2Mpix, bien suffisante pour une impression A4.

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...

Le scripts

#!/bin/sh
# usage: se placer dans le répertoire de la galerie
#lancer "sh piwi.sh"
#On se retrouve avec les bons fichiers
#il n'y a plus qu'à copier ca vers la galerie piwi

for I in *.jpg ; do
	convert -resize 1920x1920 $I ;
done

Attention, ce script remplace l'image initiale par l'image réduite, ne jamais excécuter dans le répertoire original!

Copie des photos vers Piwigo

Le plus simple est d'utiliser Dolphin avec le protocole fish (loggué comme root). 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.

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.

Catégories et permissions

Tri des catégories

Dans Piwigo, par défaut, les catégories les plus récentes sont à la fin de la liste. Il faut aller dans gestion. La on peut soit les classer par ordre alphabétique soit dans un ordre quelconque. Ne pas oublier de sauvegarder l'ordre si on ne veut pas avoir à tout recommencer.

Permissions par défaut

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 dans des catégories différentes.

Ensuite, aller dans les utilisateurs, gérer et placer toutes les catégories dans les autorisées pour l'administrateur... Il est possible que ce soit fait par défaut (selon vos réglages).

Attribuer des permissions spéciales

Si on a des catégories réelles correspondant aux permissions à délivrer, pas de problème. Sinon, le plus simple est de créer une catégorie virtuelle contenant les images à partager et d'attribuer les permissions à cette catégorie virtuelle.

Si on veut éviter que certaines photos soient vues par erreur, passer leur attribut "qui peut voir ces photos" à admin.

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.

Organisation du classement

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ù.

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 (en 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 ensuite dans l'ordinateur un disque de 2To pour les archives. Je ne peux pas en mettre plus car j'ai un graveur DVD sata, une sortie esata que je veux conserver et seulement 4 interfaces sata. Je viens de rajouter une carte USB3 avec 4 ports.

J'ai encore un disque externe dans un dock esata/USB de 1.5To. Il n'est pas évident de revendre les disques anciens, et en acheter toujours de nouveaux finit par couter cher, d'autant qu'il faut dupliquer ces archives par sécurité.

L'archivage le plus commode en 2013, c'est le disque 2.5" (format des portables), autonône (sans alimentation), de 1To. Peu importe s'il est dans un boitier, car les interfaces sata/usb coutent à peine quelques euros.

Je décompose donc mes archives par années, de façon qu'aucune archive ou groupe d'archives ne fasse plus d'1To.

J'ai, par conséquent, une archive pour les fichiers plus anciens que 2008 (370Go), ceux de 2009 et 2010 (550 Go), ceux de 2011 (350Go), ceux de 2012 (880Go) et, bien sur, ceux de 2013 qui font déjà 550Go (sans compter les fichiers de travail).

Galerie vidéo

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).

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.

Il n'est donc pas nécessaire d'avoir un répertoire séparé "originaux", il est même très difficile de conserver les originaux plus de quelques mois tellement ils sont volumineux (en gros 10Go l'heure).

Ces 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é soit sous forme de fichier mp4 soit sous forme de galette vidéo (DVD ouy BLU-RAY), internet et son format flv n'est qu'un pis aller.

Logiciel d'édition.

J'ai commencé avec Studio de Pinnacle (version 8, à l'époque, Windows). C'était, et c'est peut-être encore, le logiciel le plus vite pris en main. A ce moment, j'étaos tout débutant, Adobe Première m'avait complètement laissé sec, incapable de faire la moindre image. Vous pouvez essayer s'il y a encore des versions de démo gratuites.

Mais rapidement j'ai dû utiliser la version "+" de Studio pour avoir une deuxième piste pour le son. Le son des camescopes est souvent mauvais et, surtout, la position du cadreur qui tourne la vidéo est rarement celle optimale pour la prise de son, il est donc souvent utile de prévoir une prise de son séparée. D'ou au moins une piste son dans le logiciel en plus de celle d'origine.

J'ai quand même du passer à mieux. Je me suis fixé sur "Magix" qui reste encore le logiciel avec lequel je suis le plus à l'aise et qui permet à peu près tout.

Etant un amateur de Linux (openSUSE), j'ai souvent essayé d'utiliser des outils libres. Il y a longtemps que j'utilise "dvgrab" (copie de cassettes), avidemux (édition basique de petits fichiers, analogue à VirtualDub sous Windows, HandBrake (conversion de dvd ou autres vers mp4), et en ligne de commande ffmpeg.

En 2013, kdEnlive est devenu utilisable, au moins la plupart du temps. Openshot est un produit simple pour débutants (pas de gestion du son). Cinelerra est un produit réservé à des usages particuliers aux professionnels, avec un flux de travail particulier.

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...

Publication des vidéos

Là, il n'y a plus 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'ou mon choix du flv, ou parfois du mp4.

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 *
mkdir piwigo ;
mkdir piwigo/pwg_representative ;	
for a ; do
	b=`echo "$a" | cut -d'.' -f1` ;
	ffmpeg -i $a -s 640x360 -b 1000k -aspect 16:9 -ar 44100 piwigo/$b.flv ;
	ffmpeg -i $a -r 1 -t 00:00:01 -ss 0:0:10 -s 640x360 -f image2 $b.jpg ;

	convert -resize 128x128 $b.jpg piwigo/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-çi 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 redimentionne la vidéo en 640x360 et 1000kb/s et copie tout ça dans un répertoire ad hoc.

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

Adaptation

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

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).

Le plugin digikam

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

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).

Fantaisies

Les outils externes pour Piwigo

Ploader

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

jiwigo

pas mieux

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

Linuxtopiwigo

pas mieux

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.