•  » Trucs et astuces
  •  » Script pour orienter et compresser les photos d'un nouvel album

#1 2010-01-19 13:11:44

diabolos29
Invité

Script pour orienter et compresser les photos d'un nouvel album

Bonjour,

J'utilise Piwigo depuis quelque temps et je me suis fait un petit script shell pour traiter mes photos par lot (orientation selon les paramètres EXIF, création des répertoires et génération de versions compressées qui vont bien). Il suffit juste de poser les photos dans le répertoire à traiter et de lancer le script.
Comme j'héberge Piwigo sur mon propre serveur (sous Debian), je lance le script directement depuis la machine.

Note : il nécessite d'avoir installé au préalable les paquets "graphicsmagick-imagemagick-compat" et "tree", disponibles dans les dépôts main de Lenny donc rien d'exotique.
Si ça peut resservir à d'autres, tant mieux...
Je suis preneur de toute idée d'amélioration.






#! /bin/sh

########################################################
# PREPARATION
########################################################

# On se place dans le répertoire où se trouvent toutes le photos à traiter
# puis on liste tout ce qui s'y trouve.
# remplacer /REPERTOIRE/OU/SE/TROUVENT/LES/ALBUMS/ par le bon répertoire.
cd /REPERTOIRE/OU/SE/TROUVENT/LES/ALBUMS/
ls -l

# Demande quel est le répertoire à traiter
echo "Quel est le répertoire à traiter parmis ceux listés ?"
read repertoire
cd $repertoire

# On supprime les fichiers qui polluent
if [ -e "._*" ]; then
rm -R ._*
fi

# Création des sous-répertoires pwg_high et thumbnail
mkdir pwg_high thumbnail

# On donne les droits qui vont bien pour traiter les photos
chmod 777 -R /REPERTOIRE/OU/SE/TROUVENT/LES/ALBUMS/$repertoire


########################################################
# TRAITEMENT POUR CHAQUE PHOTO
########################################################

# Fait pivoter la photo si elle en a besoin (en fonction des informations exif)
# Copie la photo originale dans pwg_high
# Réduit de la taille en 800*600 ou 600*800 (si la photo est en 4/3)
# Crée la vignette et la copie dans le dossier thumbnail
for fichier in *.JPG ; do
   rotation=$(identify -format '%[exif:orientation]' $fichier)
   if [ $rotation = 8 ]
   then
      convert -rotate -90 $fichier $fichier
      echo "le paramètre rotation = $rotation. L'image $fichier a donc été pivotée de -90°."
   elif [ $rotation = 6 ]
   then
      convert -rotate 90 $fichier $fichier
      echo "le paramètre rotation = $rotation. L'image $fichier a donc été pivotée de 90°."
   else
      echo "le paramètre rotation = $rotation. L'image $fichier n'a pas été modifiée."
   fi

   cp $fichier pwg_high/
   convert -resize 800x800 $fichier $fichier
   convert -resize 128x128 $fichier thumbnail/'TN-'$fichier
done;

# Pour voir ce qui a été fait :
tree


###############################
# Paramètres de rotation exif #
###############################
#1           top           left side
#2           top           right side
#3           bottom        right side
#4           bottom        left side
#5           left side     top
#6 *         right side    top
#7           right side    bottom
#8 *         left side     bottom
###############################

#2 2011-08-13 18:38:29

asaln
Invité

Re: Script pour orienter et compresser les photos d'un nouvel album

Voilà un script bien utile : deux trois changements l'histoire de ne pas être embêté avec la casse ou avec les photos en *.jpeg et aussi faire un dossier directement transférable mais avec un grand format limité à 1900 pixels (après on pourra ajouter un transfert avec lftp ou autre vers sa galerie....):
(ah: si ! aussi permettre les noms de fichiers avec des espaces et des accents sans planter le script : juste des petits quote pour protéger les variables.

###########################################
#! /bin/sh
shopt -s nocaseglob
echo "Ce script va créer, dans le répertoire où vous avez copié les images sélectionnées, une galerie complète pour Piwigo."
echo ""
echo ""
echo "Cette galerie comprendra :"
echo ""
echo "    - à la racine de votre répertoire : les images en 800 x 800 maximum (en respectant les proportions) ;"
echo "    - dans un sous-répertoire nommé thumbnail : les vignettes en 128 x 128 maximum ;"
echo "    - dans un autre sous-répertoire nommé pwg_high : vos photos réduite au format 1900 x 1900 maximum (en respectant les proportions) ;"
echo "    - les accents et espaces sont préservés dans les noms de fichiers et répertoires."
echo " Il ne vous restera plus qu'à transferrer l'ensemble de ce dossier pour que Piwigo crée la galerie du même nom."
echo ""
echo ""
echo -n "Pour commencer tapez sur la touche  [Entrée]..."; read
echo ""
echo ""
echo "#####################################################################"
echo "#####################################################################"
echo ""

# On se place dans le répertoire où se trouvent toutes les photos à traiter
# puis on liste tout ce qui s'y trouve.
# remplacer /REPERTOIRE/OU/SE/TROUVENT/LES/ALBUMS/ par le bon répertoire.
cd ~/Images/galeries_piwigo
echo "Vous êtes actuellement dans le répertoire suivant :"
echo""
pwd
echo ""
echo "Si ça n'est pas votre répertoire de travail il faut éditer ce script et modifier la ligne 25"
echo ""
echo ""
echo -n "Pour continuer tapez sur la touche  [Entrée]..."; read
echo "#####################################################################"
echo "#####################################################################"

echo ""
echo "Voici la liste des répertoires présents :"
echo ""
tree -fiNd
echo ""
echo "Tapez le nom du répertoire à traiter parmis ceux listés ?"
read repertoire
cd "$repertoire"
echo ""
echo "#####################################################################"
echo "#####################################################################"

echo ""
echo "Quel nom voulez-vous donner à votre nouvelle galerie ?"
read galerie

# On supprime les fichiers qui polluent
#if [ -e "._*" ]; then
#rm -R ._*
#fi

# Création de la nouvelle galerie et des sous-répertoires pwg_high et thumbnail
mkdir -p "$galerie"/{pwg_high,thumbnail}

# On donne les droits qui vont bien pour traiter les photos
chmod 755 -R ~/Images/galeries_piwigo/"$repertoire"


########################################################
# TRAITEMENT POUR CHAQUE PHOTO
########################################################

# Fait pivoter la photo si elle en a besoin (en fonction des informations exif)
# Redimensionne la photo originale en 1900 x 1900 px (maximum) dans le sous-dossier pwg_high
# Réduit de la taille en 800 x 800 (maximum) à la racine de la galerie
# Crée la vignette (128 x 128 maximum)et la copie dans le sous-dossier thumbnail

for fichier in *.jpg *.jpeg ; do
   rotation=$(identify -format '%[exif:orientation]' "$fichier")
   if [ $rotation = 8 ]
   then
      convert -rotate -90 "$fichier" "$fichier"
      echo "le paramètre rotation = $rotation. L'image "$fichier" a donc été pivotée de -90°."
   elif [ $rotation = 6 ]
   then
      convert -rotate 90 "$fichier" "$fichier"
      echo "le paramètre rotation = $rotation. L'image "$fichier" a donc été pivotée de 90°."
   else
      echo "le paramètre rotation = $rotation. L'image "$fichier" n'a pas été modifiée."
   fi
   convert -resize 1900x1900 "$fichier" "$galerie"/pwg_high/"$fichier"
   convert -resize 800x800 "$fichier" "$galerie"/"$fichier"
   convert -resize 128x128 "$fichier" "$galerie"/thumbnail/'TN-'"$fichier"
done;

echo "#####################################################################"
echo "#####################################################################"
echo ""
# Pour voir ce qui a été fait :
echo "Voici le résultat de votre traitement :"
echo ""
tree -fNA
exit 0

###############################
# Paramètres de rotation exif #
###############################
#1           top           left side
#2           top           right side
#3           bottom        right side
#4           bottom        left side
#5           left side     top
#6 *         right side    top
#7           right side    bottom
#8 *         left side     bottom
###############################

#########################################################

#3 2011-08-13 18:44:13

Gotcha
Equipe Piwigo
Pierrelatte (26)
2007-03-14
13324

Re: Script pour orienter et compresser les photos d'un nouvel album

Merci pour le partage :-)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

  •  » Trucs et astuces
  •  » Script pour orienter et compresser les photos d'un nouvel album

Pied de page des forums

Propulsé par FluxBB