Recent Changes - Search:
HomePage



Materiel


Photo


Système et réseau

 Sous Debian Gnu Linux...

 ... et Ubuntu


Gestion de projet

 ...informatique


Cours


Divers


Private




 edit SideBar



Import

Photo.Import History

Hide minor edits - Show changes to output

October 20, 2010, at 10:56 PM by 90.17.87.22 -
Changed line 18 from:
#Auteur : Xavier Correyeur sur la base de scripts de Aurélien Coillet, Gio, Anraud et Freebird du forum Ubuntu-fr
to:
#Auteur : XCO sur la base de scripts de Aurélien Coillet, Gio, Anraud et Freebird du forum Ubuntu-fr
May 06, 2009, at 02:58 PM by admin -
Changed line 82 from:
if [ ! -d "$repsrc" ]; then
to:
if [ ! -d "$repsrc" ]; then(:nl:)(:include $Group.GroupFooter:)(:nl:)'
Added lines 159-161:


May 06, 2009, at 02:58 PM by admin -
Changed line 158 from:
%rfloat% <<|[[Index]]|>>
to:
%rfloat% <<|[[Index]]|>>
February 12, 2009, at 12:05 AM by 90.17.18.150 -
Changed lines 2-3 from:
to:
%rfloat% <<|[[Index]]|>>
Changed lines 156-158 from:
@]
to:
@]

%rfloat% <<|[[Index]]|>>
February 07, 2009, at 12:12 AM by 90.17.124.119 -
Added lines 1-155:
! Importer vos photos

J'ai largement adapté un script trouvé sur le forum Ubuntu pour importer et classer automatiquement les photos d'une carte mémoire ou tout autre APN.
* il permet de sélectionner via une IHM ou la ligne de commande les répertoires source / cible.
* il crée dans le répertoire cible des dossiers correspondant aux dates à laquelle les photos ont été prises (au format ''yyyymmdd'' selon les infos EXIF) et y déplace les photos

Logiciels utilisés par le script :
* exiftime
* zenity
* gphoto2

@@Usage: ./photo_import.sh: [-s répertoire source] [-d répertoire destination]@@
NB : Si les options ''-s'' et / ou ''-d'' ne sont pas spécifiées le script demandera à l'utilisateur quel(s) répertoire(s) utiliser.

[@
#!/bin/sh
#Auteur : Xavier Correyeur sur la base de scripts de Aurélien Coillet, Gio, Anraud et Freebird du forum Ubuntu-fr
#Licence GPL
#Version 1 : Importe des photos via PTP ou un repertoire quelconque en les triant par date de création
#Necessite : exiftime, zenity, gphoto2

#############
##Fonctions##
#############


#### Sortie volontaire par le bouton annuler
function sortie {
zenity --warning --text="Aucun répertoire spécifié, \nJe ne peux pas continuer, arrêt du script"
exit
}

function copie {
for i in `find "$repsrc" -iname *.JPG`;
do
repimport=`exiftime -tc "$i" | sed "s/Image Created//g" | sed "s/ //g" | sed "s/://g"`
repimport=`expr substr "$repimport" 1 8`
if [ ! -d "$repcible/$reptmp/$repimport" ]; then
echo ">> Création du répertoire $repcible/$reptmp/$repimport"
mkdir "$repcible/$reptmp/$repimport"
fi
if [ "$conserve" != "" ]; then
#cp -v "$rep"/*.jpg "$rep"/*.JPG "$rep"/*.cr2 . | zenity --progress --text="Veuillez patienter,\nImportation des photos en cours..." --pulsate --auto-close
cp -v "$i" "$repcible/$reptmp/$repimport"
else
mv -v "$i" "$repcible/$reptmp/$repimport"
#mv -v "$rep"/*.jpg "$rep"/*.JPG "$rep"/*.cr2 . | zenity --progress --text="Veuillez patienter,\nDéplacement des photos en cours..." --pulsate --auto-close
fi
done
}

#############
##Programme##
#############

while getopts 's:d:' name ## les options acceptant un paramètres sont suivies de ":"
do
case $name in
s)
srcflag=1
repsrc="$OPTARG"
echo "La source a été définie"
;;
d)
destflag=1
repcible="$OPTARG"
echo "La cible a été définie"
;;
?)
printf "Usage: %s: [-s répertoire source] [-d répertoire destination]\n" $0
exit 2
;;
esac
done

shift $(($OPTIND -1))
printf "Arguments restants : %s\n" "$*"


# choix du répertoire source
if [ ! -d "$repsrc" ]; then
#detection de l'appareil photo : gphoto2 => si il y a quelque chose, proposer de prendre l'appareil photo detecte et alors -> action.
if [ "$(gphoto2 --auto-detect | wc -l)" -ge 3 ]; then
apn="$(gphoto2 --auto-detect)"
zenity --question --text="Utiliser l'appareil détecté ? \n\n$apn" --title="Détection automatique"
okgphoto=$?
else
okgphoto=1
fi

# Si pas d'appareil detecté ou annulation, choisir un repertoire avec zenity --file-selection --directory contenant des photos (ou alors selectionner les photos), puis action
if [ $okgphoto = 1 ]; then
repsrc=$(zenity --file-selection --directory --title "Choix du répertoire à importer")
fi
fi

if [ ! -d "$repsrc" ]; then
sortie
fi

# choix des actions a effectuer
action=$(zenity --list --checklist\
--width=390 --height=215\
--title "Que faire ?"\
--text "Sélectionner les actions à réaliser, ou annuler."\
--column=" " --column="Description"\
TRUE "Importer les photos"\
TRUE "Conserver les photos sur l'appareil")

import=$(echo "$action" | grep "Importer les photos")
if [ "$action" = "" ]; then
sortie
elif [ "$import" = "" ]; then
zenity --warning --text="Rien à faire, \nJe ne peux pas continuer, arrêt du script"
exit
fi

# choix du repertoire cible
if [ ! -d "$repcible" ]; then
repcible=$(zenity --file-selection --directory --title "Choix du répertoire cible" --text "Choisir ici le répertoire de base où seront copiées les photos :")
fi

if [ ! -d "$repcible" ]; then
sortie
fi

# import des photos dans un repertoire temporaire
conserve=$(echo "$action" | grep "Conserver les photos sur l'appareil")
reptmp="photo_import"

if [ ! -d "$repcible/$reptmp" ]; then
mkdir "$repcible/$reptmp"
fi

if [ $okphoto=1 ]; then #pas PTP
copie | zenity --progress --text="Veuillez patienter,\nImport des photos en cours..." --pulsate --auto-close
else #PTP
cd $repbase
if [ "$conserve" != "" ]; then
gphoto2 --get-all-files 2> /dev/null | zenity --progress --text="Veuillez patienter,\nImportation des photos en cours..." --pulsate --auto-close
else
gphoto2 --get-all-files 2> /dev/null | zenity --progress --text="Veuillez patienter,\nImportation des photos en cours..." --pulsate --auto-close
gphoto2 --delete-all-files --recurse 2> /dev/null | zenity --progress --text="Veuillez patienter,\nSuppression des photos en cours..." --pulsate --auto-close
fi
fi

if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --text="Une erreur est survenue lors de l'importation des photos de l'appareil.\nArrêt du script." --title="Erreur"
exit
fi

# Fin du programme
zenity --info --text="Import terminé !"
exit
@]
Edit - History - Print - Recent Changes - Search
Page last modified on October 20, 2010, at 10:56 PM