#1 Le 30/03/2010, à 12:03
- soupaloignon
Script : Un script multi fonction pour travailler sur des images
Bonjour à tous,
J'ai souvent besoin de travailler sur des photos venant d'APN. Jusqu'à présent j'utilisais plusieurs scripts différents, chacun faisant une tâche précise.
Je les ai regroupé en 1 seul script, pour avoir tout ça sous la main et pouvoir faire plusieurs opérations différentes à la suite.
Je le poste ici, si ça peut servir....
Son nom :
MultiScript : Fichiers APN
Nouvelle version : 0.3.5 (3 décembre 2011) : Lien vers le script et des explications détaillées
http://forum.ubuntu-fr.org/viewtopic.ph … 1#p7313571
Un grand merci à tous ceux qui sont intervenus à un moment ou un autre pour des infos sur des parties de ce script
Dernière modification par soupaloignon (Le 03/12/2011, à 21:37)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#2 Le 30/03/2010, à 13:25
- twocats
Re : Script : Un script multi fonction pour travailler sur des images
Un exemple de modification. Remplace :
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
par
while [[ ${menu} = [^0-15] ]]
do
zenity --error --title="Erreur" --text="Choisissez une action valide"
done
Dans le premier code, si je rentre 'toto' comme valeur à ${menu} c'est considérer comme valide puisque tu cherche juste à savoir si ${menu} existe.
Dans le second code, toutes valeurs qui n'est pas comprise entre 0 et 15 est considérée comme invalide. C'est beaucoup plus fiable.
La réponse est 42
Hors ligne
#3 Le 31/03/2010, à 22:15
- Kanor
Re : Script : Un script multi fonction pour travailler sur des images
Pour le pdf aprés une petit recherche j'ai trouvé ça
http://ubuntuforums.org/showthread.php?t=1379633
donc tu dois modifié la commande comme ça
convert $i -quality 80 -resize 800x600 +compress $NOM
Hors ligne
#4 Le 31/03/2010, à 22:35
- Jean-Julien
Re : Script : Un script multi fonction pour travailler sur des images
Si ça peut t'aider, essaies ça. Un petit utilitaire en Python.
Ce script ne répond pas à toute tes attentes, mais il est parfois utile.
Je m'en sers pour renommer mes photos.
Les suffixes seront respectés et le nouveau nom que tu choisiras sera indexé.
Exemple de fichiers à renommer:
aaa.jpg
aaa.xcf
bbb.jpg
ccc.jpg
ddd.jpg
ddd.xcf
Tu choisis un nouveau nom et un indexe de départ;
Exemple: nom = "nouveau" et indexe = 10, ça va donner:
nouveau-10.jpg
nouveau-10.xcf
nouveau-11.jpg
nouveau-12.jpg
nouveau-13.jpg
nouveau-13.xcf
Tu places le script dans le répertoire ou tu dois renommer les fichiers et tu lances le script.
Attention ! Le script doit posséder le nom "rsi.py". Il est alors transparent et n'est pas pris en compte par la procédure de changement de nom. Il ne fonctionne correctement qu'avec des suffixes de 3 caractères (.jpg .xcf .png etc...)
Bien sur le code peut être modifié si les besoins sont différents.
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
. "rsi" signifie: renommage spécial indexé.
. attention, ce script ne fonctionne que pour les noms possédant un suffixe de 3 caractères.
. ex: ".xcf", ".jpg".
. le répertoire ne doit contenir que des noms de ce type ("." + 3 caractères).
. le nom du script _/rsi.py\_ est rendu transparent par le script.
. langage: python 2.6.2.
'''
from os import *
from string import *
# ------------------------------------------------
def djaze(tuple):
# contrôle, puis renvoie une saisie sécurisée faite au clavier
found = False # . initialisation. la saisie n'est pas validée.
while found == False: # . tant que la saisie n'est pas validée.
order = raw_input() # . saisie au clavier.
for element in tuple: # . pour chaque élément du tuple,
if element == order: # comparer l'élément avec la saisie.
found = True # . si la saisie est valide, le drapeau _/found\_ passe à _/True\_.
if found == False: # . si la saisie est invalide,
print'??\a', # il y a demande de réintroduction et émission d'un bip sonore.
return order # . la fonction retourne la valeur quand elle est validée.
''' . cette fonction de saisie sécurisée est conçue pour etre utilisée dans un programme
fonctionnant dans le terminal. elle reçoit comme paramètre un tuple contenant des chaînes.
. elle renvoie la chaîne saisie au clavier par l'utilisteur, uniquement si cette chaîne
est contenue dans le tuple passé en paramètre. '''
# ------------------------------------------------
def etir():
# renvoie un entier et seulement un entier
while True:
try:
integer_number = int(raw_input())
break
except:
print('??\a'),
return integer_number
# ------------------------------------------------
def rsi():
# renommage spécial indexé
global prefixe_nouveau_nom
global index
rep_courant = getcwd() # donne le répertoire courant
contenu = listdir(rep_courant) # donne le contenu du répertoire courant
contenu.sort() # tri des noms des fichiers
prefixe_nom_precedent = '' # initialisation
# .le premier nom n'ayant pas de nom auquel être comparé, le script considère son préfixe comme
# étant sans équivalent et l'index est d'office augmenté de 1 unité, d'où la décrémentation
# lors de son initialisation.
index -= 1 # initialisation
for nom_actuel in contenu:
if (nom_actuel <> 'rsi.py'): # le fichier _/rsi.py\_ est transparent
# extraction du préfixe (ne fonctionne que si le suffixe est de 4 caractères)
prefixe_nom_actuel = ''
boucle = 0
while (boucle < (len(nom_actuel) - 4)):
prefixe_nom_actuel += nom_actuel[boucle]
boucle += 1
# extraction du suffixe (ne fonctionne que si le suffixe est de 4 caractères)
suffixe_nom_actuel = ''
boucle = len(nom_actuel) - 4
while (boucle < len(nom_actuel)):
suffixe_nom_actuel += nom_actuel[boucle]
boucle += 1
# s'il existe des noms possédant le même préfixe, l'index ne change pas...
if (prefixe_nom_actuel == prefixe_nom_precedent):
nouveau_prefixe = prefixe_nouveau_nom + '-' + str(index)
nouveau_nom = nouveau_prefixe + suffixe_nom_actuel
# ...sinon, l'indexe est incrémenté.
else:
index += 1
nouveau_prefixe = prefixe_nouveau_nom + '-' + str(index)
nouveau_nom = nouveau_prefixe + suffixe_nom_actuel
prefixe_nom_precedent = prefixe_nom_actuel
rename(nom_actuel, nouveau_nom) # changement du nom du fichier
print 'renommage spécial indexé terminé'
return 0 # fin de fonction
# ------------------------------------------------
# -----------------------------
# ---- programme principal ----
print
print ' !!!!!!!!!!!!'
print ' attention, vous allez lancer une opération irréversible dans le répertoire courant'
print ' -------------------------------------------!!!!!!!!!!!! --------------------------'
print
print ' renommage spécial indexé'
while True:
print ' nouveau nom: ',
prefixe_nouveau_nom = raw_input() # variable globale
print ' index de départ:',
index = etir() # entrée sécurisée d'un entier, variable globale
print ' 1) renommer'
print ' 8) recommencer'
print ' 9) quitter'
choix = djaze(('1','8','9')) # la valeur '8' est neutre et permet de rester dans la boucle
if choix == '1':
cff = rsi() # _/cff\_ = code de fin de fonction
break
if choix == '9':
print 'abandon'
break
print ' fin de script, pressez <enter>',
passive = raw_input()
Hors ligne
#5 Le 01/04/2010, à 17:17
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
Merci pour vos réponses,
> twocats
J'arrive pas à placer ton code. Dans cet exemple cela irait où ?
###### Renomme en masse sur X chiffres #############################################
# Choix du menu
if [ "$menu" = 4 ] ; then
# Choix du nombre de caracteres
nombre=$(zenity --entry --width=500 --height=150 --title="$title : Nombre de chiffres" --entry-text="4" --text="Choisir sur quel nombre de chiffres seront renommés vos fichiers :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JEPG | sed 's/\(.*\).JEPG$/mv "&" "\1.jpg"/' | sh
ls -d *.jepg | sed 's/\(.*\).jepg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse et ou l'extension en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
# Boucle
let "indice=1"
for fichier in *.jpg *.png
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"$nombre"d" $indice`".$extension"
let "indice+=1"
fi
done
fi
####################################################################################
> Kanor
Merci, ça marche impeccable. Cela figuerera dans la prochaine version du script
> Jean-Julien
Merci pour ton retour. Mais je préfére continuer à faire ça en bash
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#6 Le 01/04/2010, à 17:50
- Airballman
Re : Script : Un script multi fonction pour travailler sur des images
La vache ca fait du bien
Pour une fois que c'en est un qui poste et pas qui demande
Tres bon ton srcipt. Je pense que si chacun rajoute les foncitons qu'il a codé lui meme ca peut devenir tres interessant!
airballman@jabber.ubuntu-fr.org
Traitement d'images, systèmes embarqués et autres astuces Linux!
Hors ligne
#7 Le 02/04/2010, à 15:09
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
La vache ca fait du bien
Pour une fois que c'en est un qui poste et pas qui demande
On a tous demandé un jour ou l'autre . Et pour ma part, je continu
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#8 Le 10/04/2010, à 23:15
- Lapogne71
Re : Script : Un script multi fonction pour travailler sur des images
Salut , j'ai essayé le script et j'ai quelques remarques :
1) dans tout le script tu fais des "ls -d *.JEPG" et "ls -d *.jepg"
==> je pense qu'il faudrait remplacer JEPG par JPEG
2) le choix 1 propose de renommer les .JPG en .jpg. Mais dans les autres choix, pour chaque opération tu imposes la même conversion, ce que l'utilisateur ne souhaite pas forcément ? Je propose donc de remplacer tous les "for fichier in *.jpg *.png" par "for fichier in *.jpg *.png *.JPG *.PNG"
3) "Renomme en masse sur X chiffres"
==> le nom original est écrasé et remplacé par un nombre... il aurait mieux valu rajouter ce nombre au nom existant, ou au moins garder une partie significative du nom existant.
4) "Renomme dans l'ordre chronologique des photos venant d'APN différents"
==> idem, le nom d'origine est écrasé !
5) "Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)"
==> ton script n'agit que sur les png !
A part çà c'est une excellente idée d'avoir fait un script interactif, même si chacun à sa façon de "traiter" ses photos. La plupart des gens que je connais ne font rien, il stocke leur photos telles quelles sans renommer ni rien... bonjour les doublons, les conflits de noms et les recherches de photos !
Hors ligne
#9 Le 11/04/2010, à 12:10
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
Merci pour tes commentaires constructifs, voici quelques éléments de réponses.
Tout d'abord j'ai fait ce script pour mon usage personnel. Donc certains des choix techniques du script l'ont été par rapport à l'usage que j'en fais.
La casse par exemple : faisant un peu de dev web j'ai pour principe d'avoir systématiquement une casse en minuscule et sans espace pour les noms de fichiers. C'est pour cela que le script travaille de cette manière.
1) dans tout le script tu fais des "ls -d *.JEPG" et "ls -d *.jepg"
==> je pense qu'il faudrait remplacer JEPG par JPEG
Oups, grosse erreur, bien vu
2) le choix 1 propose de renommer les .JPG en .jpg. Mais dans les autres choix, pour chaque opération tu imposes la même conversion, ce que l'utilisateur ne souhaite pas forcément ? Je propose donc de remplacer tous les "for fichier in *.jpg *.png" par "for fichier in *.jpg *.png *.JPG *.PNG"
Sur le principe je suis d'accord, mais comme expliqué en début de post, pour mon usage personnel cela ne le fait pas.
3) "Renomme en masse sur X chiffres"
==> le nom original est écrasé et remplacé par un nombre... il aurait mieux valu rajouter ce nombre au nom existant, ou au moins garder une partie significative du nom existant.
Je me suis posé la question aussi sur ce point. Mais bon, au final je me suis dit que le nom original d'un fichier venant d'un APN (en général sous la forme IMG54682.JPG) n'était pas vraiment significatif justement . En tout cas de mon coté je n'en ai absolument pas besoin, et même cela alourdit inutilement le nom du fichier.
Ceci dit je vais réfléchir à une option qui récupérerait le nom original, pour l'écrire dans un champ IPTC
4) "Renomme dans l'ordre chronologique des photos venant d'APN différents"
==> idem, le nom d'origine est écrasé !
Même réponse que le point 3
5) "Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)"
==> ton script n'agit que sur les png !
Mouarff, là aussi grossière erreur de ma part
Je vais mettre en ligne prochainement une nouvelle version, dans laquelle les fonctionnalités qui ne marchaient pas encore sur la version 0.1 sont maintenant opérationnelles.
NE MARCHE PLUS AVEC KARMIC Génére un fichier pdf des photos du répertoire
PAS FAIT Créer un dossier contenant une copie des photos jpg au format png
PAS FAIT Créer un dossier contenant une copie des photos png au format jpg
J'y inclurai les modifs des bugs que tu m'as signalé.
Merci encore pour ta participation
Dernière modification par soupaloignon (Le 11/04/2010, à 12:13)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#10 Le 10/06/2010, à 16:56
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
Bonjour à tous, voici une nouvelle version du script SP-MSI V 0.3 (la version 0.2 n'a pas été distribuée)
N'hésitez pas à faire vos retours, vos idées de nouvelles fonctionnalités ou d'optimisation de fonctionnalités existantes.
Utilisation : Se placer dans le répertoire contenant les photos à traiter, lancer le script. Inutile de sélectionner les photos, le script va travailler sur toutes les photos contenues dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
Testé avec : Karmic et Lucid (Mint 9)
Fonctionnalités :
Ranger des photos en vrac dans des dossiers datés (année, mois, jour)
Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png
Rajouter un intitulé devant le nom original (jpg et png)
Renommer en masse sur X chiffres au choix (jpg et png)
Génére un fichier pdf optimisé des photos (800 X 600) du répertoire (jpg et png)
Générer une planche contact en .jpg des images du répertoire (jpg et png)
Créer un dossier contenant une copie des photos, retaillées (jpg et png)
Renommer dans l'ordre chronologique des photos venant d'APN différents (jpg)
Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)
Changer la date et l'heure (Heures, minutes et secondes seront les mêmes pour toutes les photos)(jpg)
Voir les champs dates des données Exif (jpg)
Convertir les jpg en png (n'efface pas les originaux)
Convertir les png en jpg (80%) (n'efface pas les originaux)
Nouvelles fonctionnalités de cette version :
Génére un fichier pdf des photos du répertoire (Ne fonctionnait pas dans la version 0.1)
Créer un dossier contenant une copie des photos jpg au format png
Créer un dossier contenant une copie des photos png au format jpg
Ranger des photos en vrac dans un répertoire, dans des dossiers datés (année, mois, jour)
Corrections de bugs
Prochaines fonctionnalités :
Optimiser la compression lors de la création des png
Affiner les fonctionnalités exif
Pouvoir continuer à utiliser le script lorsque l'on change de répertoire de travail (à l'heure actuelle il faut fermer le script, et le relancer à partir du nouveau répertoire de travail). Si vous avez des infos la dessus je suis preneur.
#!/bin/bash
####################################################################################
#
# SP-MSI (SouPaloignon-MultiScriptImages ;))
# Permet de travailler sur des photos venant d'APN (renommer, classer, etc...)
#
# Dépendances :
# zenity jhead exiv2 imagemagick sed libimage-exiftool-perl
#
# Version :
# 0.3 : 2010/06/10
# 0.2 : 2010/04/27 (version non distribuée)
# 0.1 : 2010/04/01
#
# Utilisation :
# Se placer dans le répertoire contenant les photos à traiter, lancer le script.
# Inutile de sélectionner les photos, le script va travailler sur toutes les photos
# contenues dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
#
# Le script travaille beaucoup sur les données exif des photos,
# donc si celles ci sont fausses le résultat ne sera pas terrible ;)
#
# Le script travaille en modifiant la casse des extensions des fichiers (majuscule en minuscule), c'est voulu
# si ce comportement ne vous convient pas, n'utilisez pas ce script, ou modifiez-le ;)
#
# Le fil de discussion sur le forum d'Ubuntu fr :
# http://forum.ubuntu-fr.org/viewtopic.php?pid=3371321
#
# L'historique du script :
# http://soupaloignon.net/web2/articles/articles.php?id=28&cat=3
#
# Testé sous Lucid (Mint 9)
#
# www.soupaloignon.net
####################################################################################
####################################################################################
###### Mettre tout le script dans une boucle #######################################
while [ "$fin_du_script" != "oui" ]
do
####################################################################################
####################################################################################
###### Variable(s) générale(s) #####################################################
# Titre des fenêtres zenity
title="SP-MSI (V 0.3)"
####################################################################################
####################################################################################
###### Afficher le menu ############################################################
menu=`zenity --width=750 --height=500 \
--title "$title [SouPaloignon - Multi Script Images]" --text="Choisir l'action à effectuer" --list --hide-column 1 --column "" --column "" \
0 "QUITTER LE SCRIPT" \
1 "" \
2 "Ranger des photos en vrac dans des dossiers datés (année, mois, jour)" \
3 "Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png" \
4 "Rajouter un intitulé devant le nom original (jpg et png)" \
5 "Renommer en masse sur X chiffres au choix (jpg et png)" \
6 "Génére un fichier pdf optimisé des photos (800 X 600) du répertoire (jpg et png)" \
7 "Générer une planche contact en .jpg des images du répertoire (jpg et png)" \
8 "Créer un dossier contenant une copie des photos, retaillées (jpg et png)" \
9 "Renommer dans l'ordre chronologique des photos venant d'APN différents (jpg)"\
10 "Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)" \
11 "Changer la date et l'heure (Heures, minutes et secondes seront les mêmes pour toutes les photos)(jpg)" \
12 "Voir les champs dates des données Exif (jpg)" \
13 "Convertir les jpg en png (n'efface pas les originaux)" \
14 "Convertir les png en jpg (80%) (n'efface pas les originaux)" \
15 "" \
16 "A LIRE" \
| sed 's/ max//g' `
# Pour quitter
if [ "$menu" = 0 ] ; then
fin_du_script="oui"
fi
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
####################################################################################
####################################################################################
###### Ranger des photos en vrac dans des dossiers datés (année, mois, jour) #######
# Choix du menu
if [ "$menu" = 2 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
exiftool -r *.jpg '-FileName<${DateTimeOriginal}' -d "%Y-%m-%d /"
fi
####################################################################################
####################################################################################
###### Changer la casse ############################################################
# Choix du menu
if [ "$menu" = 3 ] ; then
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé devant le nom du fichier ###############################
# Choix du menu
if [ "$menu" = 4 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
## Texte à rajouter devant le nom du fichier
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Boucle d'insertion
for fichier in `ls *.jpg *.png`
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Renomme en masse sur X chiffres #############################################
# Choix du menu
if [ "$menu" = 5 ] ; then
# Choix du nombre de caracteres
nombre=$(zenity --entry --width=500 --height=150 --title="$title : Nombre de chiffres" --entry-text="2" --text="Choisir sur quel nombre de chiffres seront renommés vos fichiers :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
# Boucle
let "indice=1"
for fichier in *.jpg *.png
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"$nombre"d" $indice`".$extension"
let "indice+=1"
fi
done
fi
####################################################################################
####################################################################################
###### Génére un fichier pdf des photos du répertoire ##############################
# Choix du menu
if [ "$menu" = 6 ] ; then
# Nom du pdf
TEMPORAIRE='temporaire.pdf'
NOM='00-final.pdf'
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
# Boucle
for i in "*.jpg *.png"
do
convert $i -quality 80 -resize 800x600 +compress $TEMPORAIRE
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$NOM $TEMPORAIRE;
rm $TEMPORAIRE
done
fi
# Plus de détails sur cette portion de script :
# http://forum.ubuntu-fr.org/viewtopic.php?pid=2966157
####################################################################################
####################################################################################
###### Génére une planche contact en .jpg des images du répertoire (jpg et png)#####
# Choix du menu
if [ "$menu" = 7 ] ; then
# Nom du fichier final
NOM='00-planche-contact.jpg'
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
# Go ;)
montage -label '%f' *.jpg *.png \
-tile 6x7 $NOM
fi
####################################################################################
####################################################################################
###### Créer un dossier contenant une copie des photos, retaillées #################
# Choix du menu
if [ "$menu" = 8 ] ; then
IFS="|"
#title="Choix de la taille"
VALEUR=`zenity --title "$title : Retailler des photos" --text "Choisir la nouvelle taille des photos" --list --separator=" " --height=250 --width=500 --column="Taille" "320x240" "450x338" "640x480" "800x600" "1024x768" | sed 's/ max//g' `
# click sur le bouton abandon
if [ "$?" != 0 ] ; then
exit
fi
# si pas de taille sélectionnée
if [ ! "$VALEUR" ]; then
zenity --error --title="error" --text="Aucune taille n'a été sélectionnée. Sortie de cette option."
fi
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
# Création du répertoire / copie / se placer dans le repertoire
mkdir $VALEUR
cp -r *jpg *.png $VALEUR
cd $VALEUR
# Retailler à la valeur choisie
mogrify -resize $VALEUR *.jpg *.png
fi
####################################################################################
####################################################################################
###### Renomme dans l'ordre chronologique des photos venant d'APN différents (jpg) #
###### par la date-heures-secondes de prise de vue #################################
# Choix du menu
if [ "$menu" = 9 ] ; then
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Renomme par date et heure exif (donc dans l'ordre chronologique)
# tous appareils confondus
exiv2 -r %Y-%m-%d--%H-%M-%S mv *.jpg
fi
####################################################################################
####################################################################################
###### Changer la date : Année et/ou mois et/ou jour ###############################
###### (heures/minutes/secondes non changés) (jpg) #################################
# Choix du menu
if [ "$menu" = 10 ] ; then
## Entrer la date
DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="" --text="Entrez la nouvelle date :\n\nDans un format AAAA pour ne changer que l'année\n(mois/jour/heures/minutes/secondes non changés)\n\nDans un format AAAA:MM pour ne changer que l'année et le mois\n(jour/heures/minutes/secondes non changés)\n\nDans un format AAAA:MM:JJ pour ne changer que l'année, le mois et le jour\n(heures/minutes/secondes non changées)\n\nAttention à bien mettre le \":\" (sans les guillements) entre les valeurs si nécessaire" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Go
jhead -ds$DATE *jpg
fi
####################################################################################
####################################################################################
###### Changer la date et l'heure (jpg) ############################################
# Choix du menu
if [ "$menu" = 11 ] ; then
## Entrer la date
DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="2010:10:10" --text="Entrez la date dans un format AAAA:MM:JJ" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Entrer l'heure
HEURE=$(zenity --entry --width=300 --height=150 --title="Heure" --entry-text="10:10:10" --text="Entrez la date dans un format HH:MM:SS" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Go
exiv2 -M"set Exif.Image.DateTime $DATE $HEURE" -M"set Exif.Photo.DateTimeOriginal $DATE $HEURE" -M"set Exif.Photo.DateTimeDigitized $DATE $HEURE" *.jpg
fi
####################################################################################
####################################################################################
###### Voir les champs dates exif (jpg) ############################################
# Choix du menu
if [ "$menu" = 12 ] ; then
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Go
#exiv2 -Plt *.jpg | sed -n '/Date and Time/p' | zenity --text-info --title ="exif" --width=700 --height=500
exiv2 -Plt *.jpg | sed -n '/Date*/p' | zenity --text-info --title ="exif" --width=700 --height=500
fi
####################################################################################
####################################################################################
###### jpg en png ##################################################################
# Choix du menu
if [ "$menu" = 13 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
for file in *.jpg; do convert "$file" "$(basename $file .jpg).png"; done
mkdir png
mv *.png png
fi
####################################################################################
####################################################################################
###### Créer un dossier contenant une copie des photos png au format jpg ###########
# Choix du menu
if [ "$menu" = 14 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
for file in *.png; do convert -quality 80 "$file" "$(basename $file .png).jpg"; done
mkdir jpg
mv *.jpg jpg
fi
####################################################################################
####################################################################################
###### A LIRE ######################################################################
# Choix du menu
if [ "$menu" = 16 ] ; then
zenity --info --width=500 --height=150 --title="$title : Informations" --text="Merci d'utiliser ce script. Si vous avez des idées d'amélioration, voici le forum où cela se passe :\nhttp://forum.ubuntu-fr.org/viewtopic.php?pid=3371321\n\nCe script travaille sur des images en jpg et/ou png. C'est précisé à la fin de chaque fonction.\n\nTravaillant nativement sur des extensions en .jpg et/ou .png, ce script changera automatiquement la casse de ces 2 extensions s'il rencontre des majuscules dans lesfichiers à traiter.\n\nwww.soupaloignon.net"
fi
########################################################################
done
exit 0
Dernière modification par soupaloignon (Le 10/06/2010, à 21:21)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#11 Le 31/07/2010, à 13:05
- Jamay
Re : Script : Un script multi fonction pour travailler sur des images
Bonjour et merci pour la partage de ce script.
Je n'y connait rien en script mais j'aimerais le personnaliser un peu.
j'ai trouver un paquet qui permet de faire une rotation automatique de mes photos.
Quand je lance ça dans un terminal ça fonctionne et ca me fait une rotation de mes images suivant les données exif..
exiftran -ai *.jpg
j'aimerais l'ajouté au script mais je ne sais pas comment faire.
J'ai fait un essai mais ça ne fonctionne pas :
####################################################################################
###### Ranger des photos en vrac dans des dossiers datés (année, mois, jour) #######
###### + AUTO-ROTATION DES IMAGES
# Choix du menu
if [ "$menu" = 2 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
exiftool -r *.jpg '-FileName<${DateTimeOriginal}' -d "%Y-%m-%d /"
# autorotation
exiftran -ai *.jpg
fi
####################################################################################
Hors ligne
#12 Le 03/08/2010, à 21:43
- Jamay
Re : Script : Un script multi fonction pour travailler sur des images
Personne ne souhaite me donner un petit coup de main?
Ou peut-être m'aiguiller vers une page de la doc pour des rudiments de programmation?
Hors ligne
#13 Le 07/08/2010, à 13:27
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
tu as essayé le script en enlevant la ligne d'exiftool ?
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#14 Le 22/02/2011, à 16:52
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
Bonjour à tous, voici une nouvelle version du script SP-MSI.
Pour l'occasion il change de nom et devient MultiScript : Fichiers APN (j'ai fait un autre script multiple dans le même genre, mais qui concerne l'audio, d'où l'idée de prendre un nom plus générique + ce qu'il traite)
Je vous présente donc : MultiScript : Fichiers APN V 0.3.4
N'hésitez pas à faire vos retours, vos idées de nouvelles fonctionnalités ou d'optimisation de fonctionnalités existantes.
Utilisation : Se placer dans le répertoire contenant les photos à traiter, lancer le script. Inutile de sélectionner les photos, le script va travailler sur toutes les photos contenues dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
Testé avec : Karmic et Lucid (Mint 9)
Fonctionnalités :
Ranger des photos en vrac dans des dossiers datés (année, mois, jour)
Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png
Rajouter un intitulé devant le nom original (jpg et png)
Renommer en masse sur X chiffres au choix (jpg et png)
Génére un fichier pdf optimisé des photos (800 X 600) du répertoire (jpg et png)
Générer une planche contact en .jpg des images du répertoire (jpg et png)
Créer un dossier contenant une copie des photos, retaillées (jpg et png)
Renommer dans l'ordre chronologique des photos venant d'APN différents (jpg)
Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)
Changer la date et l'heure (Heures, minutes et secondes seront les mêmes pour toutes les photos)(jpg)
Voir les champs dates des données Exif (jpg)
Convertir les jpg en png (n'efface pas les originaux)
Convertir les png en jpg (80%) (n'efface pas les originaux)
Effacer tous les champs EXIf et les commentaires IPTC (n'efface pas les originaux)
Nouvelles fonctionnalités de cette version :
Amélioration de la génération du fichier pdf des photos du répertoire
Effacer tous les champs EXIf et les commentaires IPTC
Rajouter un intitulé à la fin du nom original (jpg)
Quelques petits trucs en plus, mais j'ai pas pris la précaution de noter, donc je ne m'en souviens plus
Corrections de bugs
#!/bin/bash
####################################################################################
#
# MultiScript : Fichiers APN
# Permet de travailler sur des photos venant d'APN (renommer, classer, etc...)
#
# Dépendances :
# zenity jhead exiv2 imagemagick sed libimage-exiftool-perl
#
# Version :
# 0.3.4 2011/02/22
# 0.3 : 2010/06/10
# 0.2 : 2010/04/27 (version non distribuée)
# 0.1 : 2010/04/01
#
# Utilisation :
# Se placer dans le répertoire contenant les photos à traiter, lancer le script.
# Inutile de sélectionner les photos, le script va travailler sur toutes les photos
# contenues dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
#
# Le script travaille beaucoup sur les données exif des photos,
# donc si celles ci sont fausses le résultat ne sera pas terrible ;)
#
# Le script travaille en modifiant la casse des extensions des fichiers (majuscule en minuscule), c'est voulu
# si ce comportement ne vous convient pas, n'utilisez pas ce script, ou modifiez-le ;)
#
# Prenez l'habitude de faire des manips sur des copies de fichiers
#
# Le fil de discussion sur le forum d'Ubuntu fr :
# http://forum.ubuntu-fr.org/viewtopic.php?pid=3371321
#
# L'historique du script :
# http://soupaloignon.net/web/articles/articles.php?id=28&cat=3
#
# Testé sous Mint 9 (Lucid)
#
# www.soupaloignon.net
####################################################################################
###### Mettre tout le script dans une boucle #######################################
while [ "$fin_du_script" != "oui" ]
do
####################################################################################
####################################################################################
###### Variable(s) générale(s) #####################################################
# Titre des fenêtres zenity
title="MultiScript : Fichiers APN (V 0.3.4)"
# Installation des programmes manquants
INSTALL="gksudo apt-get install"
####################################################################################
####################################################################################
###### Function(s) #################################################################
function Casse-Extension
{
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
}
####################################################################################
####################################################################################
###### Afficher le menu ############################################################
menu=`zenity --width=750 --height=800 \
--title "$title" --text="Choisir l'action à effectuer" --list --hide-column 1 --column "" --column "" \
0 "QUITTER LE SCRIPT" \
1 "" \
2 "Ranger des photos en vrac dans des dossiers datés (année, mois, jour)" \
21 "" \
3 "Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png" \
31 "Effacer TOUS les tags EXIF et IPTC (partiel) sur une copie du dossier (jpg)" \
32 "" \
4 "Rajouter un intitulé devant le nom du fichier (jpg et png)" \
41 "Rajouter un intitulé à la fin du nom du fichier (jpg)" \
5 "Renommer en masse sur X chiffres au choix (jpg et png)" \
9 "Renommer dans l'ordre chronologique des photos venant d'APN différents (jpg)"\
52 "" \
6 "Génére un fichier pdf optimisé des photos (800 X 600) du répertoire (jpg et png)" \
7 "Générer une planche contact en .jpg des images du répertoire (jpg et png)" \
81 "" \
10 "Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)" \
11 "Changer la date et l'heure (Heures, minutes et secondes seront les mêmes pour toutes les photos)(jpg)" \
12 "Avancer ou reculer les heures et/ou minutes et/ou secondes" \
13 "Voir les champs dates des données Exif (jpg)" \
131 "" \
14 "Convertir les jpg en png (n'efface pas les originaux)" \
15 "Convertir les png en jpg (80%) (n'efface pas les originaux)" \
8 "Créer un dossier contenant une copie des photos, retaillées (jpg et png)" \
16 "" \
17 "A LIRE" \
| sed 's/ max//g' `
# Pour quitter
if [ "$menu" = 0 ] ; then
fin_du_script="oui"
fi
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
####################################################################################
####################################################################################
###### Ranger des photos en vrac dans des dossiers datés (année, mois, jour) #######
# Choix du menu
if [ "$menu" = 2 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
exiftool -r *.jpg '-FileName<${DateTimeOriginal}' -d "%Y-%m-%d/"
fi
####################################################################################
####################################################################################
###### Changer la casse ############################################################
# Choix du menu
if [ "$menu" = 3 ] ; then
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
fi
####################################################################################
####################################################################################
###### Effacer EXIF et IPTC ########################################################
# Choix du menu
if [ "$menu" = 31 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Création du répertoire / copie / se placer dans le repertoire
REP="No-EXIF"
mkdir $REP
cp -r *jpg $REP
cd $REP
exiv2 -d a *.jpg
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé devant le nom du fichier ###############################
# Choix du menu
if [ "$menu" = 4 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
## Texte à rajouter devant le nom du fichier
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Boucle d'insertion
for fichier in `ls *.jpg *.png`
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé à la fin du nom du fichier ###############################
# Choix du menu
if [ "$menu" = 41 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
## Texte à rajouter à la fin du nom du fichier
TEXTEFIN=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé à la fin du nom du fichier" --entry-text="" --text="Entrez l'intitulé à rajouter à la fin de chaque nom de fichier :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
for file in *jpg *.png
do
base=`basename $file`
mv $file ${base%.*}$TEXTEFIN.${base##*.}
done
fi
####################################################################################
####################################################################################
###### Renomme en masse sur X chiffres #############################################
# Choix du menu
if [ "$menu" = 5 ] ; then
# Choix du nombre de caracteres
nombre=$(zenity --entry --width=500 --height=150 --title="$title : Nombre de chiffres" --entry-text="2" --text="Choisir sur quel nombre de chiffres seront renommés vos fichiers :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Boucle
let "indice=1"
for fichier in *.jpg *.png
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"$nombre"d" $indice`".$extension"
let "indice+=1"
fi
done
fi
####################################################################################
####################################################################################
###### Génére un fichier pdf des photos du répertoire ##############################
# Choix du menu
if [ "$menu" = 6 ] ; then
# Nom du pdf
TEMPORAIRE='temporaire.pdf'
NOM='00-final.pdf'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Boucle
for i in "*.jpg *.png"
do
#convert $i -quality 80 -geometry 800x600 +compress $TEMPORAIRE
convert $i +compress $TEMPORAIRE
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$NOM $TEMPORAIRE;
rm $TEMPORAIRE
done
#-geometry a la place de -resize
#convert * fichier.pdf ==> respecte le rtatio de sphotos
fi
# Plus de détails sur cette portion de script :
# http://forum.ubuntu-fr.org/viewtopic.php?pid=2966157
####################################################################################
####################################################################################
###### Génére une planche contact en .jpg des images du répertoire (jpg et png)#####
# Choix du menu
if [ "$menu" = 7 ] ; then
# Nom du fichier final
NOM='00-planche-contact.jpg'
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go ;)
montage -label '%f' *.jpg *.png \
-tile 6x7 $NOM
fi
####################################################################################
####################################################################################
###### Créer un dossier contenant une copie des photos, retaillées #################
# Choix du menu
if [ "$menu" = 8 ] ; then
IFS="|"
#title="Choix de la taille"
VALEUR=`zenity --title "$title : Retailler des photos" --text "Choisir la nouvelle taille des photos" --list --separator=" " --height=250 --width=500 --column="Taille" "320x240" "450x338" "640x480" "800x600" "1024x768" | sed 's/ max//g' `
# click sur le bouton abandon
if [ "$?" != 0 ] ; then
exit
fi
# si pas de taille sélectionnée
if [ ! "$VALEUR" ]; then
zenity --error --title="error" --text="Aucune taille n'a été sélectionnée. Sortie de cette option."
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Création du répertoire / copie / se placer dans le repertoire
mkdir $VALEUR
cp -r *jpg *.png $VALEUR
cd $VALEUR
# Retailler à la valeur choisie
mogrify -quality 60 -resize $VALEUR *.jpg *.png
#
fi
####################################################################################
####################################################################################
###### Renomme dans l'ordre chronologique des photos venant d'APN différents (jpg) #
###### par la date-heures-secondes de prise de vue #################################
# Choix du menu
if [ "$menu" = 9 ] ; then
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Renomme par date et heure exif (donc dans l'ordre chronologique)
# tous appareils confondus
exiv2 -r %Y-%m-%d--%H-%M-%S mv *.jpg
fi
####################################################################################
####################################################################################
###### Changer la date : Année et/ou mois et/ou jour ###############################
###### (heures/minutes/secondes non changés) (jpg) #################################
# Choix du menu
if [ "$menu" = 10 ] ; then
## Entrer la date
DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="" --text="Entrez la nouvelle date :\n\nDans un format AAAA pour ne changer que l'année\n(mois/jour/heures/minutes/secondes non changés)\n\nDans un format AAAA:MM pour ne changer que l'année et le mois\n(jour/heures/minutes/secondes non changés)\n\nDans un format AAAA:MM:JJ pour ne changer que l'année, le mois et le jour\n(heures/minutes/secondes non changées)\n\nAttention à bien mettre le \":\" (sans les guillements) entre les valeurs si nécessaire" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
jhead -ds$DATE *jpg
fi
####################################################################################
####################################################################################
###### Changer la date et l'heure (jpg) ############################################
# Choix du menu
if [ "$menu" = 11 ] ; then
## Entrer la date
DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="2010:10:10" --text="Entrez la date dans un format AAAA:MM:JJ" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Entrer l'heure
HEURE=$(zenity --entry --width=300 --height=150 --title="Heure" --entry-text="10:10:10" --text="Entrez la date dans un format HH:MM:SS" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
exiv2 -M"set Exif.Image.DateTime $DATE $HEURE" -M"set Exif.Photo.DateTimeOriginal $DATE $HEURE" -M"set Exif.Photo.DateTimeDigitized $DATE $HEURE" *.jpg
fi
####################################################################################
####################################################################################
###### Changer les heures : En positif ou négatif ###############################
# Choix du menu
if [ "$menu" = 12 ] ; then
## Entrer la valeur à rajouter ou retrancher
TEMPS=$(zenity --entry --width=300 --height=150 --title="Avancer ou reculer : Heure / Minute / Seconde" --entry-text="" --text="Entrez tout d'abord le symbole + ou - (pour rajouter ou enlever du temps) puis les valeurs de temps :\n\n+10 rajoutera 10 heures\n-10 enlévera 10 heures\n+00:10 rajoutera 10 minutes\n+00:00:10 rajoutera 10 secondes\n\nAttention à bien mettre le \":\" (sans les guillements) entre les valeurs si nécessaire" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
jhead -ta$TEMPS *.jpg
fi
####################################################################################
####################################################################################
###### Voir les champs dates exif (jpg) ############################################
# Choix du menu
if [ "$menu" = 13 ] ; then
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
#exiv2 -Plt *.jpg | sed -n '/Date and Time/p' | zenity --text-info --title ="exif" --width=700 --height=500
exiv2 -Plt *.jpg | sed -n '/Date*/p' | zenity --text-info --title ="exif" --width=700 --height=500
fi
####################################################################################
####################################################################################
###### jpg en png ##################################################################
# Choix du menu
if [ "$menu" = 14 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
for file in *.jpg; do convert "$file" "$(basename $file .jpg).png"; done
mkdir png
mv *.png png
fi
####################################################################################
####################################################################################
###### Créer un dossier contenant une copie des photos png au format jpg ###########
# Choix du menu
if [ "$menu" = 15 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
for file in *.png; do convert -quality 80 "$file" "$(basename $file .png).jpg"; done
mkdir jpg
mv *.jpg jpg
fi
####################################################################################
####################################################################################
###### A LIRE ######################################################################
# Choix du menu
if [ "$menu" = 17 ] ; then
zenity --info --width=500 --height=150 --title="$title : Informations" --text="Merci d'utiliser ce script. Si vous avez des idées d'amélioration, voici le forum où cela se passe :\nhttp://forum.ubuntu-fr.org/viewtopic.php?pid=3371321\n\nCe script travaille sur des images en jpg et/ou png. C'est précisé à la fin de chaque fonction.\n\nTravaillant nativement sur des extensions en .jpg et/ou .png, ce script changera automatiquement la casse de ces 2 extensions s'il rencontre des majuscules dans les fichiers à traiter.\n\nwww.soupaloignon.net"
fi
########################################################################
done
exit 0
Dernière modification par soupaloignon (Le 22/02/2011, à 17:14)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#15 Le 03/12/2011, à 21:36
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
Nouvelle version : 0.3.5
## Ajout de la fonction : Rajouter un intitulé devant le nom du fichier et renommer sur 2 chiffres
## Correction de la fonction : Générer un fichier pdf optimisé des photos
## Corrections mineures
Fonctionnalités :
Ranger des photos en vrac dans des dossiers datés (année, mois, jour) (jpg)
Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png
Effacer TOUS les tags EXIF et IPTC (partiel) sur une copie du dossier (jpg)
Rajouter un intitulé devant le nom du fichier (jpg et png)
Rajouter un intitulé à la fin du nom du fichier (jpg et png)
Renommer en masse sur X chiffres au choix (jpg et png)
Renommer dans l'ordre chronologique des photos venant d'APN différents (jpg)\
Rajouter un intitulé devant le nom du fichier et renommer sur 2 chiffres (jpg et png)\
Générer un fichier pdf optimisé des photos (800 X 600) du répertoire (jpg et png)
Générer une planche contact en .jpg des images du répertoire (jpg et png)
Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)
Changer la date et l'heure (Heures, minutes et secondes seront les mêmes pour toutes les photos)(jpg)
Avancer ou reculer les heures et/ou minutes et/ou secondes (jpg)
Voir les champs dates des données Exif (jpg)
Convertir les jpg en png (n'efface pas les originaux)
Convertir les png en jpg (80%) (n'efface pas les originaux)
Créer un dossier contenant une copie des photos, retaillées (jpg et png)
N'hésitez pas à faire vos retours, vos idées de nouvelles fonctionnalités ou d'optimisation de fonctionnalités existantes.
Utilisation : Se placer dans le répertoire contenant les photos à traiter, lancer le script. Inutile de sélectionner les photos, le script va travailler sur toutes les photos contenues dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
Testé avec : Karmic et Lucid (Mint 9)
#!/bin/bash
####################################################################################
#
# MultiScript : Fichiers Images
# Permet de travailler sur des photos venant d'APN (renommer, classer, etc...)
#
# Dépendances :
# zenity jhead exiv2 imagemagick sed libimage-exiftool-perl
#
# Version :
# 0.3.5 2011/12/03
## Ajout de la fonction : Rajouter un intitulé devant le nom du fichier et renommer sur 2 chiffres
## Correction de la fonction : Générer un fichier pdf optimisé des photos
## Corrections mineures
#
# 0.3.4 2011/02/22
# 0.3 : 2010/06/10
# 0.2 : 2010/04/27 (version non distribuée)
# 0.1 : 2010/04/01
#
# Utilisation :
# Se placer dans le répertoire contenant les photos à traiter, lancer le script.
# Inutile de sélectionner les photos, le script va travailler sur toutes les photos
# contenues dans le répertoire (et uniquement dans le répertoire, il n'est pas récursif)
#
# Le script travaille beaucoup sur les données exif des photos,
# donc si celles ci sont fausses le résultat ne sera pas terrible ;)
#
# Le script travaille en modifiant la casse des extensions des fichiers (majuscule en minuscule), c'est voulu
# si ce comportement ne vous convient pas, n'utilisez pas ce script, ou modifiez-le ;)
#
# Prenez l'habitude de faire des manips sur des copies de fichiers
#
# Le fil de discussion sur le forum d'Ubuntu fr :
# http://forum.ubuntu-fr.org/viewtopic.php?pid=3371321
#
# L'historique du script :
# http://soupaloignon.net/web/articles/articles.php?id=28&cat=3
#
# Testé sous Mint 9 (Lucid)
#
# www.soupaloignon.net
####################################################################################
####################################################################################
###### Mettre tout le script dans une boucle #######################################
while [ "$fin_du_script" != "oui" ]
do
####################################################################################
####################################################################################
###### Variable(s) générale(s) #####################################################
# Titre des fenêtres zenity
title="MultiScript : Fichiers photos (V 0.3.5)"
####################################################################################
####################################################################################
###### Function(s) #################################################################
function Casse-Extension
{
# Transforme la casse et ou l'extension en jpg
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jpeg$/mv "&" "\1.jpg"/' | sh
# Transforme la casse en png
ls -d *.PNG | sed 's/\(.*\).PNG$/mv "&" "\1.png"/' | sh
}
####################################################################################
####################################################################################
###### Afficher le menu ############################################################
menu=`zenity --width=750 --height=800 \
--title "$title" --text="Choisir l'action à effectuer" --list --hide-column 1 --column "" --column "" \
0 "QUITTER LE SCRIPT (V 0.3.5)" \
1 "" \
2 "Ranger des photos en vrac dans des dossiers datés (année, mois, jour) (jpg)" \
21 "" \
3 "Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png" \
31 "Effacer TOUS les tags EXIF et IPTC (partiel) sur une copie du dossier (jpg)" \
32 "" \
4 "Rajouter un intitulé devant le nom du fichier (jpg et png)" \
41 "Rajouter un intitulé à la fin du nom du fichier (jpg et png)" \
5 "Renommer en masse sur X chiffres au choix (jpg et png)" \
9 "Renommer dans l'ordre chronologique des photos venant d'APN différents (jpg)"\
51 "Rajouter un intitulé devant le nom du fichier et renommer sur 2 chiffres (jpg et png)"\
52 "" \
6 "Générer un fichier pdf optimisé des photos (800 X 600) du répertoire (jpg et png)" \
7 "Générer une planche contact en .jpg des images du répertoire (jpg et png)" \
81 "" \
10 "Changer la date : Année et/ou mois et/ou jour (heures/minutes/secondes non changés) (jpg)" \
11 "Changer la date et l'heure (Heures, minutes et secondes seront les mêmes pour toutes les photos)(jpg)" \
12 "Avancer ou reculer les heures et/ou minutes et/ou secondes (jpg)" \
13 "Voir les champs dates des données Exif (jpg)" \
131 "" \
14 "Convertir les jpg en png (n'efface pas les originaux)" \
15 "Convertir les png en jpg (80%) (n'efface pas les originaux)" \
8 "Créer un dossier contenant une copie des photos, retaillées (jpg et png)" \
16 "" \
17 "A LIRE" \
| sed 's/ max//g' `
# Pour quitter
if [ "$menu" = 0 ] ; then
fin_du_script="oui"
fi
# Vérifier qu'un choix a été fait
if [ ! "$menu" ]; then
zenity --error --title="Erreur" --text="Choisissez une action"
fi
####################################################################################
####################################################################################
###### Ranger des photos en vrac dans des dossiers datés (année, mois, jour) #######
# Choix du menu
if [ "$menu" = 2 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
exiftool -r *.jpg '-FileName<${DateTimeOriginal}' -d "%Y-%m-%d/"
fi
####################################################################################
####################################################################################
###### Changer la casse ############################################################
# Choix du menu
if [ "$menu" = 3 ] ; then
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
fi
####################################################################################
####################################################################################
###### Effacer EXIF et IPTC ########################################################
# Choix du menu
if [ "$menu" = 31 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Création du répertoire / copie / se placer dans le repertoire
REP="No-EXIF"
mkdir $REP
cp -r *jpg $REP
cd $REP
exiv2 -d a *.jpg
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé devant le nom du fichier ###############################
# Choix du menu
if [ "$menu" = 4 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
## Texte à rajouter devant le nom du fichier
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Boucle d'insertion
for fichier in `ls *.jpg *.png`
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé à la fin du nom du fichier ###############################
# Choix du menu
if [ "$menu" = 41 ] ; then
# Eviter les problemes avec des noms comportant des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
## Texte à rajouter à la fin du nom du fichier
TEXTEFIN=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé à la fin du nom du fichier" --entry-text="" --text="Entrez l'intitulé à rajouter à la fin de chaque nom de fichier :")
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
for file in *jpg *.png
do
base=`basename $file`
mv $file ${base%.*}$TEXTEFIN.${base##*.}
done
fi
####################################################################################
####################################################################################
###### Renomme en masse sur X chiffres #############################################
# Choix du menu
if [ "$menu" = 5 ] ; then
# Choix du nombre de caracteres
nombre=$(zenity --entry --width=500 --height=150 --title="$title : Nombre de chiffres" --entry-text="2" --text="Choisir sur quel nombre de chiffres seront renommés vos fichiers :" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Boucle
let "indice=1"
for fichier in *.jpg *.png
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"$nombre"d" $indice`".$extension"
let "indice+=1"
fi
done
fi
####################################################################################
####################################################################################
###### Génére un fichier pdf des photos du répertoire ##############################
# Choix du menu
if [ "$menu" = 6 ] ; then
# Nom du pdf
TEMPORAIRE='temporaire.pdf'
NOM='00-final.pdf'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Boucle
for i in "*.jpg *.png"
do
#convert $i -quality 80 -geometry 800x600 +compress $TEMPORAIRE
convert $i +compress $TEMPORAIRE
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$NOM $TEMPORAIRE
rm $TEMPORAIRE
done
#-geometry a la place de -resize
#convert * fichier.pdf ==> respecte le rtatio de sphotos
fi
# Plus de détails sur cette portion de script :
# http://forum.ubuntu-fr.org/viewtopic.php?pid=2966157
####################################################################################
####################################################################################
###### Génére une planche contact en .jpg des images du répertoire (jpg et png)#####
# Choix du menu
if [ "$menu" = 7 ] ; then
# Nom du fichier final
NOM='00-planche-contact.jpg'
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go ;)
montage -label '%f' *.jpg *.png \
-tile 6x7 $NOM
fi
####################################################################################
####################################################################################
###### Créer un dossier contenant une copie des photos, retaillées #################
# Choix du menu
if [ "$menu" = 8 ] ; then
IFS="|"
#title="Choix de la taille"
VALEUR=`zenity --title "$title : Retailler des photos" --text "Choisir la nouvelle taille des photos" --list --separator=" " --height=250 --width=500 --column="Taille" "320x240" "450x338" "640x480" "800x600" "1024x768" | sed 's/ max//g' `
# click sur le bouton abandon
if [ "$?" != 0 ] ; then
exit
fi
# si pas de taille sélectionnée
if [ ! "$VALEUR" ]; then
zenity --error --title="error" --text="Aucune taille n'a été sélectionnée. Sortie de cette option."
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Création du répertoire / copie / se placer dans le repertoire
mkdir $VALEUR
cp -r *jpg *.png $VALEUR
cd $VALEUR
# Retailler à la valeur choisie
mogrify -quality 60 -resize $VALEUR *.jpg *.png
#
fi
####################################################################################
####################################################################################
###### Renomme dans l'ordre chronologique des photos venant d'APN différents (jpg) #
###### par la date-heures-secondes de prise de vue #################################
# Choix du menu
if [ "$menu" = 9 ] ; then
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Renomme par date et heure exif (donc dans l'ordre chronologique)
# tous appareils confondus
exiv2 -r %Y-%m-%d--%Hh-%Mm-%Ss mv *.jpg
fi
####################################################################################
####################################################################################
###### Rajouter un intitulé devant le nom du fichier et renommer sur 2 chiffres) ##
# Choix du menu
if [ "$menu" = 51 ] ; then
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Texte à rajouter devant le nom du fichier
TEXTE=$(zenity --entry --width=500 --height=150 --title="$title : Intitulé devant le nom de fichier" --entry-text="" --text="Entrez le nom à rajouter devant vos fichiers :")
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Boucle
let "indice=1"
for fichier in *.jpg *.png
do
if [ -f "$fichier" ]; then
extension=${fichier##*.}
echo "$fichier" "=>" "$indice.$extension"
mv "$fichier" `printf "%0"2"d" $indice`".$extension"
let "indice+=1"
fi
done
# Boucle d'insertion
for fichier in `ls *.jpg *.png`
do
rename 's/^/'$TEXTE'/' $fichier
done
fi
####################################################################################
####################################################################################
###### Changer la date : Année et/ou mois et/ou jour ###############################
###### (heures/minutes/secondes non changés) (jpg) #################################
# Choix du menu
if [ "$menu" = 10 ] ; then
## Entrer la date
DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="" --text="Entrez la nouvelle date :\n\nDans un format AAAA pour ne changer que l'année\n(mois/jour/heures/minutes/secondes non changés)\n\nDans un format AAAA:MM pour ne changer que l'année et le mois\n(jour/heures/minutes/secondes non changés)\n\nDans un format AAAA:MM:JJ pour ne changer que l'année, le mois et le jour\n(heures/minutes/secondes non changées)\n\nAttention à bien mettre le \":\" (sans les guillements) entre les valeurs si nécessaire" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
jhead -ds$DATE *jpg
fi
####################################################################################
####################################################################################
###### Changer la date et l'heure (jpg) ############################################
# Choix du menu
if [ "$menu" = 11 ] ; then
## Entrer la date
DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="2010:10:10" --text="Entrez la date dans un format AAAA:MM:JJ" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
## Entrer l'heure
HEURE=$(zenity --entry --width=300 --height=150 --title="Heure" --entry-text="10:10:10" --text="Entrez la date dans un format HH:MM:SS" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
exiv2 -M"set Exif.Image.DateTime $DATE $HEURE" -M"set Exif.Photo.DateTimeOriginal $DATE $HEURE" -M"set Exif.Photo.DateTimeDigitized $DATE $HEURE" *.jpg
fi
####################################################################################
####################################################################################
###### Changer les heures : En positif ou négatif ###############################
# Choix du menu
if [ "$menu" = 12 ] ; then
## Entrer la valeur à rajouter ou retrancher
TEMPS=$(zenity --entry --width=300 --height=150 --title="Avancer ou reculer : Heure / Minute / Seconde" --entry-text="" --text="Entrez tout d'abord le symbole + ou - (pour rajouter ou enlever du temps) puis les valeurs de temps :\n\n+10 rajoutera 10 heures\n-10 enlévera 10 heures\n+00:10 rajoutera 10 minutes\n+00:00:10 rajoutera 10 secondes\n\nAttention à bien mettre le \":\" (sans les guillements) entre les valeurs si nécessaire" )
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
jhead -ta$TEMPS *.jpg
fi
####################################################################################
####################################################################################
###### Voir les champs dates exif (jpg) ############################################
# Choix du menu
if [ "$menu" = 13 ] ; then
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
# Go
#exiv2 -Plt *.jpg | sed -n '/Date and Time/p' | zenity --text-info --title ="exif" --width=700 --height=500
exiv2 -Plt *.jpg | sed -n '/Date*/p' | zenity --text-info --title ="exif" --width=700 --height=500
fi
####################################################################################
####################################################################################
###### jpg en png ##################################################################
# Choix du menu
if [ "$menu" = 14 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
for file in *.jpg; do convert "$file" "$(basename $file .jpg).png"; done
mkdir png
mv *.png png
fi
####################################################################################
####################################################################################
###### Créer un dossier contenant une copie des photos png au format jpg ###########
# Choix du menu
if [ "$menu" = 15 ] ; then
# Eviter les problèmes avec des noms de fichiers comportants des espaces
IFS=$'\n'
# Function Transforme la casse et ou l'extension en jpg/png
Casse-Extension
for file in *.png; do convert -quality 80 "$file" "$(basename $file .png).jpg"; done
mkdir jpg
mv *.jpg jpg
fi
####################################################################################
####################################################################################
###### A LIRE ######################################################################
# Choix du menu
if [ "$menu" = 17 ] ; then
zenity --info --width=500 --height=150 --title="$title : Informations" --text="Merci d'utiliser ce script. Si vous avez des idées d'amélioration, voici le forum où cela se passe :\nhttp://forum.ubuntu-fr.org/viewtopic.php?pid=3371321\n\nCe script travaille sur des images en jpg et/ou png. C'est précisé à la fin de chaque fonction.\n\nTravaillant nativement sur des extensions en .jpg et/ou .png, ce script changera automatiquement la casse de ces 2 extensions s'il rencontre des majuscules dans les fichiers à traiter.\n\nwww.soupaloignon.net"
fi
########################################################################
done
exit 0
Dernière modification par soupaloignon (Le 06/12/2011, à 06:30)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#16 Le 15/01/2012, à 02:41
- delco2
Re : Script : Un script multi fonction pour travailler sur des images
Changer la casse : JPG, JPEG, jpeg => jpg / PNG => png
Bonjour,
merci pour ce script j'aimerais savoir comment modifier le script pour faire en sorte que ils modifier seulement 1 fichier a la foi exemple le fichier que je clic bouton droit sur le .jpg et si tu le veux bien (propriétaire du script) merci pour info.
Gilles
Hors ligne
#17 Le 16/01/2012, à 18:40
- A.
Re : Script : Un script multi fonction pour travailler sur des images
N'hésitez pas à faire vos retours, vos idées de nouvelles fonctionnalités ou d'optimisation de fonctionnalités existantes.
Bonjour,
L'outil semble intéressant.
Je profite du fait qu'on puisse proposer des idées pour faire une suggestion.
L'idée serait de modifier rapidement les mots clés de plusieurs images en passant par un affichage du style de celui de zenity.
Je n'y connais pas grand chose mais à partir de ce script et du script de Riicooo permettant de renommer une sélection de fichiers comme un texte on doit pouvoir s'en sortir. Je vais essayer de tester ça mais sans assurance de résultat.
Hors ligne
#18 Le 30/09/2013, à 06:55
- BZH36
Re : Script : Un script multi fonction pour travailler sur des images
Bonjour
j'ai essayé le script
mais la seule qui m'intéresse ne fonctionne pas : Ranger des photos en vrac dans des dossiers datés (année, mois, jour)
par contre le script fonctionne (par exemple) pour la création d'un répertoire avec modif de la résolution.
Pour le 1er cas je n'ai aucun message d'erreur.
Je suis en 13.04
Merci le Bzh36
Hors ligne
#19 Le 12/01/2014, à 20:41
- soupaloignon
Re : Script : Un script multi fonction pour travailler sur des images
boonsoir BZH36,
Désolé pour la réponse tardive.
Es-tu sur d'avoir exiftool d'installé ? Si oui est ce que tes photos ont des métadonnées exif?
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne