Piwigo
Pour gérer une grosse collection de photos, Piwigo est parfait mais demande la préparation de sa bibliothèque.
Nous allons partir du fait que nous enverrons nos fichiers via FTP.
Préparation de la galerie
Suppression des fichiers inutiles
WinDirStat permet d'analyser la photothèque et de donner l'ensemble des types de fichiers présents, la taille de chaque type, etc.
Avec EveryThing, nous pouvons chercher tous les fichiers d'un certain type à un certain endroit et les supprimer très facilement.
Cela permet de supprimer tout ce qui est inutile : docx, ini, thm, db, pptx, ... Enfin bref, tout ce qui n'est pas une vidéo ou une image...
Cela permet aussi de voir tous les formats auxquels on est confronté.
Renommage
Un serveur web n'accepte pas tout un tas de caractères dans les noms de fichiers, pourtant acceptés par les systèmes d'exploitation.
Cela va des caractères accentués, (à,é,è,â...) aux caractères spéciaux ((,),&,@,$,',`, etc.), mais également les espaces.
AntRenamer permet d'appliquer toute une série de règles à appliquer (en une fois).
| Caractère | Remplacement | Détails |
|---|---|---|
| espace | _ | |
| à | a | |
| é | e | |
| è | e | |
| ê | e | |
| â | a | |
| ( et ) | - | |
| [ et ] | - | |
| { et } | - | |
| @ | _at_ | |
| & | _and_ | |
| + | _plus_ | |
| , | _ | |
| ' | _ | apostrophe française |
| ' | _ | apostrophe anglaise |
| etc... |
Enfin, je lance un derniere remplacement, parfois plusieurs fois : "__" vers "_"
Conversion photos
Dans mon dernier cas, il y avait des photos aux formats jpg, jpeg, png, cr2, bmp.
J'utilise le batch-script suivant, qui fait appel à ImageMagick :
@echo off
setlocal enabledelayedexpansion
echo === Traitement des JPG ===
for /R %%F in (*.jpg) do (
echo JPG : %%F
mogrify -resize 2048x2048 -quality 90 "%%F"
)
echo.
echo === Conversion autres formats en JPG ===
for /R %%F in (*.png *.jpeg *.cr2) do (
echo Fichier : %%F
set "src=%%F"
set "dst=%%~dpnF.jpg"
REM Conversion -> JPG
magick "%%F" -resize 2048x2048 -quality 90 "!dst!"
REM Si le JPG existe, on supprime le fichier
if exist "!dst!" (
del "%%F"
echo -> Converti et supprimé
) else (
echo -> ERREUR : conversion échouée
)
)
echo.
echo === Terminé ===
pauseCe code commence par analyser l'ensemble des fichiers JPG afin de les redimensionner à une taille imposée de 2048x2048 maximum.
Les images plus grandes ne seront pas "carrées" mais auront 2048 comme largeur ou hauteur maximale, et pareil pour les images plus petites, elles seront agrandies.
Ce que permet d'avoir toutes des images ayant très exactement les mêmes dimensions est de pouvoir appliquer un logo, watermark... qui donnera toujours "bien".
Une fois qu'il a fini avec les JPG, il refait la même chose pour les autres formats.
Je suis tombé sur pas mal de BMP récalcitrants, raison pour laquelle j'ai utilisé un autre batch, faisant appel à ffmpeg :
@echo off
setlocal enabledelayedexpansion
echo === Conversion des BMP en JPG avec FFMPEG ===
echo.
for /R %%F in (*.bmp) do (
echo BMP : %%F
set "src=%%F"
set "dst=%%~dpnF.jpg"
REM Conversion BMP -> JPG (ffmpeg tolérant)
ffmpeg -y -loglevel error -err_detect ignore_err ^
-i "%%F" ^
-vf "scale='min(2048,iw)':'min(2048,ih)':force_original_aspect_ratio=decrease" ^
-q:v 2 "!dst!"
REM Si le JPG existe, on supprime le BMP
if exist "!dst!" (
del "%%F"
echo -> Converti et BMP supprimé
) else (
echo -> ERREUR : conversion échouée
)
)
echo.
echo === Terminé ===
pauseIl y a toujours une erreur à la sortie de ffmpeg, mais le fichier JPG est quand même créé...