« Piwigo » : différence entre les versions

De Vanlindt Marc
Aller à la navigation Aller à la recherche
Page créée avec « 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 ty... »
 
Aucun résumé des modifications
Ligne 106 : Ligne 106 :


echo.
echo.
echo === Conversion des PNG en JPG ===
echo === Conversion autres formats en JPG ===
for /R %%F in (*.png) do (
for /R %%F in (*.png *.jpeg *.cr2) do (
     echo PNG : %%F
     echo Fichier : %%F


     set "src=%%F"
     set "src=%%F"
     set "dst=%%~dpnF.jpg"
     set "dst=%%~dpnF.jpg"


     REM Conversion PNG -> JPG
     REM Conversion -> JPG
     magick "%%F" -resize 2048x2048 -quality 90 "!dst!"
     magick "%%F" -resize 2048x2048 -quality 90 "!dst!"


     REM Si le JPG existe, on supprime le PNG
     REM Si le JPG existe, on supprime le fichier
     if exist "!dst!" (
     if exist "!dst!" (
         del "%%F"
         del "%%F"
         echo  -> Converti et PNG supprimé
         echo  -> Converti et supprimé
     ) else (
     ) else (
         echo  -> ERREUR : conversion échouée
         echo  -> ERREUR : conversion échouée
Ligne 129 : Ligne 129 :
pause
pause


</syntaxhighlight>
</syntaxhighlight>Ce 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 : <syntaxhighlight lang="batch" line="1">
@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é ===
pause
 
</syntaxhighlight>Il y a toujours une erreur à la sortie de ffmpeg, mais le fichier JPG est quand même créé...

Version du 14 février 2026 à 14:47

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é ===
pause

Ce 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é ===
pause

Il y a toujours une erreur à la sortie de ffmpeg, mais le fichier JPG est quand même créé...