#1 2010-01-10 21:32:24

LeChi
Membre
Cosnes-et-Romain
2007-05-18
89

Traitement des photos par lots

Bonsoir,

étant donné que pLoader ne fonctionne pas sur "mon" Linux (distribution Ubuntu 9.10), j'ai cherché d'autres moyens pour traiter les photos par lot.
J'ai trouvé "Phatch" (http://photobatch.stani.be/) qui paraissait prometteur, mais pas moyen de le faire tourner convenablement.

Donc, j'ai écrit un bash, dont voici le code.
Il utilise les programmes zenity, exiv2, imagemagick dont les paquest sont sur la distribution Ubuntu.
J'ai parfois des kwacks avec la mise automatique verticale : find $REP_web -type f -exec exifautotran '{}' \; ne semble pas fonctionner chaque fois, mais je ne parviens pas à savoir pourquoi.

Si ce script vous est utile, dites-le moi.

Et si vous avez une idée concernant les kwacks d'exifautotran, merci de me le dire.

Enfin, j'aimerais pouvoir ajouter les coordonnées GPS (globale en fonction d'une ville visitée par exemple).
Mais je coince sur les exifs.

Bien à vous

LeChi

-----------------------------------------------------
#!/bin/bash

# Le sha-bang ( #!) en en-tête de ce fichier indique à votre système que ce fichier est un ensemble de commandes pour l'interpréteur indiqué.
# Traitement photos LeChi, version 1.

######################VARIABLES########################

Nom_ini="CHi"
XF_Art="LeChi"
XF_cr="CopyLeft - ArtLibre"
XF_cmd1="set Exif.Image.Artist Ascii  $XF_Art "
XF_cmd2="set Exif.Image.Copyright Ascii $XF_cr"

######################LOCALISATION########################
#REP_photos=$PWD #Cette commande suffit si on place le fichier script dans le répertoire contenant les photos à traiter.
REP_photos=`zenity --title="Choisir un fichier" --file-selection --directory`
if [ $? = "1" ]
then exit
fi

REP_thumb=$REP_photos/thumbnail
REP_pwh=$REP_photos/pwg_high
REP_web=$REP_photos/web

############VERIFICATION DES VARIABLES######################
zenity --list  --width=700 --height=250 \
  --title="Vérifiez !." \
  --column="Données" --column="Valeur" \
    "Photos traitées si extensions :" "jpg jpeg JPG JPEG" \
    "Photos traitées dans le répertoire"  "$REP_photos" \
    "la métadonnée exif Auteur sera " "$XF_Art" \
    "la métadonnée exif Copyright sera " "$XF_cr"\
--question --text="Vérifiez les variables et dites si vous voulez vraiment continuer !"
if [ $? = "1" ]
then exit
#else
fi

######################SCRIPT########################
cd $REP_photos
# Création des répertoires
mkdir -p $REP_thumb
mkdir -p $REP_pwh
mkdir -p $REP_web

#Renommer les photos
rename 'y/A-Z/a-z/' *
for FN in *.jpeg
    do
        mv ${FN} ${FN%jpeg}jpg
        done
find . -iname "*.jpg" -exec exiv2 -r %Y%m%d-%Hh%Mm%S-$Nom_ini mv {} \;

# Les données de droit d'auteur
exiv2 -M"$XF_cmd1" -M"$XF_cmd2" *.jpg

# copier les photos dans le répertoire haute qualité
cp * $REP_pwh #-v est pour que le processus s'affiche

# Mettre à 800 x 600
mogrify  -path web -size 600  *.jpg

# Rotation des images verticales d'un dossier dans leur sens original
cd web
find $REP_web -type f -exec exifautotran '{}' \;
cd ..


# Créer les vignettes
cp web/* $REP_thumb
mogrify -resize 150x110  $REP_thumb/*.jpg
cd $REP_thumb
rename 's//TN-/' *.jpg
cd ..

# effacer les photos temporaires
cd web
cp * $REP_photos
cd ..
rm -r -d web


# Fin de script
zenity --info --title "Au revoir - LeChi" --text "Les photos sont traitées"
exit # La bonne méthode pour sortir d'un script.

---------------------------------------------------------------------------

Dernière modification par LeChi (2010-01-10 21:46:19)


Merci à tous ceux qui programment dans un esprit libre.
http://photos.christian.hinque.fr (Site sous licence Art Libre : http://artlibre.org/)
Hébergeur : OVH - 60GP // Piwigo 2.9.3 // Système d'exploitation: Linux //PHP: 5.6.33 //MySQL: 5.5.55 // Bibliothèque graphique: ImageMagick 6.6.0-4

Hors ligne

#2 2010-01-10 21:41:17

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
14593

Re: Traitement des photos par lots

Merci pour le script

La dernière version de pLoader ne fonctionne pas chez toi ?


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#3 2010-01-10 21:43:56

tosca
Former Piwigo Team
Cévennes (Gard)
2006-09-23
3818

Re: Traitement des photos par lots

ddtddt a écrit:

La dernière version de pLoader ne fonctionne pas chez toi ?

Chez moi non plus ... en 9.10 également.

Dernière modification par tosca (2010-01-10 21:44:12)

Hors ligne

#4 2010-01-10 21:57:04

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
14593

Re: Traitement des photos par lots

tosca a écrit:

ddtddt a écrit:

La dernière version de pLoader ne fonctionne pas chez toi ?

Chez moi non plus ... en 9.10 également.

As tu essayé en faisans un clic direct sur l'icône ubuntu-9.10 ou en passant par le raccourci


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#5 2010-01-10 22:25:23

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12339

Re: Traitement des photos par lots

N'hésites pas à ditribuer ton script dans les extensions en tant qu'outil. Il en existe d'autres avec le même objectif fonctionnel MAIS aucun ne va au-delà de la "préparation" des photos. Si tu veux aller plus loin et que ton script gère les envois, je te recommande chaudement d'utiliser tools/piwigo_remote.pl, fournit dans toutes les distributions de Piwigo. Je suis l'auteur de ce script qui a pour objectif de donner un exemple d'utilisation de l'API web de Piwigo et il fonctionne, notamment pwg.images.add.

Pour pLoader qui ne marche pas sous Ubuntu 9.10, merci de faire un nouveau topic, il faut qu'on comprenne d'ou ça vient, c'est très important cette compatibilité, c'était l'objectif de la release 2.0.7a de pLoader (et qui explique pourquoi elle a mis du temps à sortir)


Dernier billet du blog Piwigo.com (20 juin 2019) Modus, nouveau thème par défaut sur Piwigo.com

Hors ligne

#6 2010-01-10 22:32:07

tosca
Former Piwigo Team
Cévennes (Gard)
2006-09-23
3818

Re: Traitement des photos par lots

plg a écrit:

Pour pLoader qui ne marche pas sous Ubuntu 9.10, merci de faire un nouveau topic, il faut qu'on comprenne d'ou ça vient, c'est très important cette compatibilité, c'était l'objectif de la release 2.0.7a de pLoader (et qui explique pourquoi elle a mis du temps à sortir)

ici : [Forum, topic 16797] pLoader ne fonctionne pas sous Ubuntu 9.10

Hors ligne

#7 2010-02-11 10:33:35

LeXa
Membre
2010-02-11
7

Re: Traitement des photos par lots

Bonjour,

je suis nouveau sur Piwigo. Je suis en train de le mettre en place afin de me séparer de picassa.
Je suis utilisateur de Digikam, cependant le module KIPI pour l'envoi direct sur piwigo n'est pas encore prêt.
J'ai essayé Ploader mais je n'ai pas été convaincu, j'ai eu un problème de gestion des Exif dans les fichiers envoyés et la structure sur piwigo ne me plaisait pas. (dossier upload)

Je suis donc tombé sur le script de LeChi (merci à toi pour ce travail !), je me suis permis de l'adapter à mes besoins :
- Étant kdeiste j'ai remplacé zenity par kdialog
- J'ai modifier le "mogrify" afin que la résolution ne dépasse jamais 800x600 quelque soit l'orientation de l'image (Largeur max 800, hauteur max 600)
- J'ai adapté la syntaxe afin que le script puisse traiter des dossiers contenant des espaces (oui je sais c'est mal !)
- J'ai modifié la gestion du code retour des fenêtres kdialog

Voila je pense que je rajouterai la possibité d'envoyé dirrectement le dosser via FTP et l'ouverture de Piwgo dans un navigateur une fois l'envoi  effectué.

Ha oui j'oubliai, le script modifié :

Code:

#!/bin/bash

# Le sha-bang ( #!) en en-tête de ce fichier indique à votre système que ce fichier est un ensemble de commandes pour l'interpréteur indiqué.
# Traitement photos LeChi, version 1.

######################VARIABLES########################

Nom_ini="Imo"
XF_Art="Imocarpe"
XF_cr="GPLv3"
XF_cmd1="set Exif.Image.Artist Ascii  $XF_Art "
XF_cmd2="set Exif.Image.Copyright Ascii $XF_cr"

######################LOCALISATION########################
#REP_photos=$PWD #Cette commande suffit si on place le fichier script dans le répertoire contenant les photos à traiter.

REP_photos=$(kdialog --getexistingdirectory $HOME --title "Choisir un dossier à traiter")
#REP_photos=`zenity --title="Choisir un fichier" --file-selection --directory`
if [ $? != 0 ]
then exit
fi

REP_thumb="$REP_photos"/thumbnail
REP_pwh="$REP_photos"/pwg_high
REP_web="$REP_photos"/web

############VERIFICATION DES VARIABLES######################

kdialog --title "Confirmation" --warningcontinuecancel "Dossier traité : $REP_photos \n Metadonnée Auteur: $XF_Art \n Métadonnée Licence: $XF_cr"

#zenity --list  --width=700 --height=250 \
#  --title="Vérifiez !." \
#  --column="Données" --column="Valeur" \
#    "Photos traitées si extensions :" "jpg jpeg JPG JPEG" \
#    "Photos traitées dans le répertoire"  "$REP_photos" \
#    "la métadonnée exif Auteur sera " "$XF_Art" \
#    "la métadonnée exif Copyright sera " "$XF_cr"\
#--question --text="Vérifiez les variables et dites si vous voulez vraiment continuer !"

if [ $? != 0 ]
then exit
#else
fi

######################SCRIPT########################
cd "$REP_photos"
# Création des répertoires
mkdir -p "$REP_thumb"
mkdir -p "$REP_pwh"
mkdir -p "$REP_web"

#Renommer les photos
rename 'y/A-Z/a-z/' *
for FN in *.jpeg
    do
        mv "${FN}" "${FN%jpeg}jpg"
        done
find . -iname "*.jpg" -exec exiv2 -r %y%m%d-%Hh%Mm%S-$Nom_ini mv {} \;

# Les données de droit d'auteur
exiv2 -M"$XF_cmd1" -M"$XF_cmd2" *.jpg

# copier les photos dans le répertoire haute qualité
cp * "$REP_pwh" #-v est pour que le processus s'affiche

# Mettre à 800 x 600
mogrify  -path web -geometry 800x600 *.jpg

# Rotation des images verticales d'un dossier dans leur sens original
cd web
find "$REP_web" -type f -exec exifautotran '{}' \;
cd ..


# Créer les vignettes
cp web/* "$REP_thumb"
mogrify -resize 150x110  "$REP_thumb"/*.jpg
cd "$REP_thumb"
rename 's//TN-/' *.jpg
cd ..

# effacer les photos temporaires
cd web
cp * "$REP_photos"
cd ..
rm -r -d web


# Fin de script
kdialog --title "Opération terminée" --msgbox "Le dossier est prêt à être envoyée sur PIWIGO"
#zenity --info --title "Au revoir - LeChi" --text "Les photos sont traitées"
exit # La bonne méthode pour sortir d'un script.

Dernière modification par LeXa (2010-02-11 10:35:19)

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter facebook newsletter Faire un don Piwigo.org © 2002-2019 · Contact