Aller au contenu principal
Bienvenue sur Forum Puppy Linux - Toutou Linux - Astuces - Aides !
Lorsque vous n'êtes pas connectés vous pouvez visiter la totalité du forum mais avec certaines restrictions : cf le règlement pour les visiteurs non connectés. Vous êtes chaleureusement conviés à vous inscrire afin de bénéficier de toutes les fonctionnalités du forum et de participer aux échanges.
Sujet: Renommer ses photos avec horodatage et numéro séquentiel (Lu 471 fois) sujet précédent - sujet suivant
0 Membres et 1 Invitédans ce sujet

Renommer ses photos avec horodatage et numéro séquentiel

Bonjour,

Je suis candide es Linux (ou "nioubi").

Je voulais dater et numéroter des photos numériques avec une ligne de commandes.
Certes, Xnview, par exemple, fait ça très bien.

A partir de ce que la communauté a mis à la disposition de chacun, je suis parvenu à :

j=0;for i in *.*;do let j+=1;j2=`printf "%03d" $j`;cp $i `date --reference=$i +%Y%m%d_$j2.jpg`;done

(Il y a certainement plus académique avec contrôle d'erreurs, etc. Mais, je ne sais pas faire, quelle misère.)

J'ai pris "j" et "j2" comme variables, mais on peut les nommer autrement, évidemment.

Pour changer le nombre de digits, modifier "%03d" (3 : c'est pour un nombre à 3 chiffres).

"--reference=$i" retourne la date de modification du fichier correspondant à "$i".
"+%Y%m%d" renvoie la date au format "AAAAMMJJ" (i.e., "18710318").
Si cet ordre ne convient pas, modifer l'ordonnancement de "+%Y%m%d".

J'ai indiqué l'extension de fichier ".jpg", si les clichés ont un format différent, c'est celui-ci qu'il faudra indiquer (même si sous Linux, l'extension n'est pas utile à ce qu'on m'a dit).

Devant "printf", par exemple, le caractère s'obtient en combinant les touches "Alt Gr" + la touche alphanumérique "7/è/`".

Avant de lancer cette ligne de commandes, soit on copiera les photos à traiter dans un répertoire de travail, soit on ira dans celui où elles sont stockées.

Faire des sauvegardes préalablement afin de ne rien perdre.

S'il est possible de simplifier la ligne de commandes ci-dessus et obtenir le même résultat : je prends.

Portez-vous bien.
Bien amicalement.
Vive Toutou Linux

Re : Renommer ses photos avec horodatage et numéro séquentiel

Répondre #1
J'utilise beaucoup xnview qui fonctionne parfaitement sur nos Toutous.
Mais la ligne de commande est parfois plus rapide et a ses adeptes : merci @rantanplan.
Si @musher0 passe je pense qu'il aura des idées et propositions.

Re : Renommer ses photos avec jhead

Répondre #2
Depuis ce matin je me casse la tête pour renommer par lot des photos en fonction de la date et de l'heure de leur prise de vue... et j'avais oublié ce message !
Ma version de xnview est trop ancienne et je n'ai pas essayé de la mettre à jour car au final c'est trop long.
Et je pense avoir trouvé ce qu'il me faut... et qui va certainement plaire et rendre service à beaucoup de monde : jhead.
Cet outil en ligne de commande, et oui mais vous allez voir comme c'est simple, est disponible dans le PPM de ma XenialPup.
Vous regroupez vos photos dans un dossier : le dossier ne doit contenir que des fichiers images (les autres types de fichiers ne sont tout simplement pas traités).
Vous ouvrez un terminal et vous rendez dans le dossier en question, et là vous saisissez simplement :
jhead -n%Y-%m-%d_%H:%M:%S *
Et miracle : les fichiers dans le dossiers sont rapidement renommés sous la forme par exemple 2021-12-30_14:30:15.jpg (nom d'origine DSC044567.JPG).
450 fichiers traités en 85s avec mon vieux lenovo de 2008 : ça me va parfaitement.
Les fichiers sont bien renommés avec la date et l'heure de la prise de vue récupérées dans les données exif.

La commande jhead -h dans un terminal vous permettra de voir toutes les possibilités offertes par l'outil : elles sont très très nombreuses.
Le site sur lequel je suis tombé et qui donne quelques autres exemples : https://blog.dorian-depriester.fr/linux/renommer-des-photos-en-fonction-de-leurs-dates
Philippe

EDIT1:
avec la ligne de code-ci-dessus seul le nom du fichier est modifié : il n'est pas converti et conserve son extension d'origine qui passe simplement en minuscule si elle était en majuscule.

Re : Renommer ses photos avec horodatage et numéro séquentiel

Répondre #3
Bonjour @augras et à tout le monde,

meilleurs voeux de bonne année et de bonne santé pour 2022.

Merci pour cet autre outil.

Je viens de voir qu'avec exiv2, on avait la faculté de renommer ses photos en y ajoutant la date selon le format de son choix pour qu'on peut utiliser %Y, %m et %d dans l'ordre de son choix.

Voici un exemple qui mettra la date de création du cliché avant le nom du fichier :
exiv2 rename -r %Y%m%d_:basename: *.*

exiv2 offre plusieurs actions et options :
Citer
Manipulate the Exif metadata of images.

Actions:
  ad | adjust  Adjust Exif timestamps by the given time. This action
                requires at least one of the -a, -Y, -O or -D options.
  pr | print    Print image metadata.
  rm | delete  Delete image metadata from the files.
  in | insert  Insert metadata from corresponding *.exv files.
                Use option -S to change the suffix of the input files.
  ex | extract  Extract metadata to *.exv, *.xmp and thumbnail image files.
  mv | rename  Rename files and/or set file timestamps according to the
                Exif create timestamp. The filename format can be set with
                -r format, timestamp options are controlled with -t and -T.
  mo | modify  Apply commands to modify (add, set, delete) the Exif and
                IPTC metadata of image files or set the JPEG comment.
                Requires option -c, -m or -M.
  fi | fixiso  Copy ISO setting from the Nikon Makernote to the regular
                Exif tag.
  fc | fixcom  Convert the UNICODE Exif user comment to UCS-2. Its current
                character encoding can be specified with the -n option.

Options:
  -h      Display this help and exit.
  -V      Show the program version and exit.
  -v      Be verbose during the program run.
  -q      Silence warnings and error messages during the program run (quiet).
  -Q lvl  Set log-level to d(ebug), i(nfo), w(arning), e(rror) or m(ute).
  -b      Show large binary values.
  -u      Show unknown tags.
  -g key  Only output info for this key (grep).
  -n enc  Charset to use to decode UNICODE Exif user comments.
  -k      Preserve file timestamps (keep).
  -t      Also set the file timestamp in 'rename' action (overrides -k).
  -T      Only set the file timestamp in 'rename' action, do not rename
          the file (overrides -k).
  -f      Do not prompt before overwriting existing files (force).
  -F      Do not prompt before renaming files (Force).
  -a time Time adjustment in the format [-]HH[:MM[:SS]]. This option
          is only used with the 'adjust' action.
  -Y yrs  Year adjustment with the 'adjust' action.
  -O mon  Month adjustment with the 'adjust' action.
  -D day  Day adjustment with the 'adjust' action.
  -p mode Print mode for the 'print' action. Possible modes are:
            s : print a summary of the Exif metadata (the default)
            a : print Exif, IPTC and XMP metadata (shortcut for -Pkyct)
            t : interpreted (translated) Exif data (-PEkyct)
            v : plain Exif data values (-PExgnycv)
            h : hexdump of the Exif data (-PExgnycsh)
            i : IPTC data values (-PIkyct)
            x : XMP properties (-PXkyct)
            c : JPEG comment
            p : list available previews
  -P flgs Print flags for fine control of tag lists ('print' action):
            E : include Exif tags in the list
            I : IPTC datasets
            X : XMP properties
            x : print a column with the tag number
            g : group name
            k : key
            l : tag label
            n : tag name
            y : type
            c : number of components (count)
            s : size in bytes
            v : plain data value
            t : interpreted (translated) data
            h : hexdump of the data
  -d tgt  Delete target(s) for the 'delete' action. Possible targets are:
            a : all supported metadata (the default)
            e : Exif section
            t : Exif thumbnail only
            i : IPTC data
            x : XMP packet
            c : JPEG comment
  -i tgt  Insert target(s) for the 'insert' action. Possible targets are
          the same as those for the -d option, plus a modifier:
            X : Insert metadata from an XMP sidecar file <file>.xmp
          Only JPEG thumbnails can be inserted, they need to be named
          <file>-thumb.jpg
  -e tgt  Extract target(s) for the 'extract' action. Possible targets
          are the same as those for the -d option, plus a target to extract
          preview images and a modifier to generate an XMP sidecar file:
            p[<n>[,<m> ...]] : Extract preview images.
            X : Extract metadata to an XMP sidecar file <file>.xmp
  -r fmt  Filename format for the 'rename' action. The format string
          follows strftime(3). The following keywords are supported:
            :basename:  - original filename without extension
            :dirname:    - name of the directory holding the original file
            :parentname: - name of parent directory
          Default filename format is %Y%m%d_%H%M%S.
  -c txt  JPEG comment string to set in the image.
  -m file Command file for the modify action. The format for commands is
          set|add|del <key> [[<type>] <value>].
  -M cmd  Command line for the modify action. The format for the
          commands is the same as that of the lines of a command file.
  -l dir  Location (directory) for files to be inserted from or extracted to.
  -S .suf Use suffix .suf for source files for insert command.
Amitiés.
Vive Toutou Linux

Re : Renommer ses photos avec horodatage et numéro séquentiel

Répondre #4
Bonjour @Rantanplan ,
Meilleurs vœux également, merci.
Entre ton script, jhead et exiv2 on a une sacrée boîte à outils : chacun devrait arriver à faire ce qu'il veut.
Et pour ceux qui préfèrent une interface graphique Xnview devrait convenir.

 

Re : Renommer ses photos avec horodatage et numéro séquentiel

Répondre #5
Bonjour,

pour ceux qui ne trouverait pas jhead architecture i386 32 bits dans leur PPM, il est joint au présent.

Amitiés.
Vive Toutou Linux

 
Simple Audio Video Embedder