mesure du temps depuis la première photo d'un time lapse

Advanced Renamer forum
#1 : 30/11-21 10:53
persoc
persoc
Posts: 1
Bonjour, ce message est rédigé en français : j'espère que google traduira correctement ;-)

J'ai plusieurs séries de photos prises en timelapse pendant plus de 7 jours.
Les noms de fichier sont de type
20211011090043.jpg
20211011091044.jpg
20211011092044.jpg
....
(avec dans l'ordre l'année, le mois, le jour, l'heure, la minute, et les secondes.)
Je voudrais modifier uniquement les noms de fichier (et pas les dates de création!) en mesurant le temps qui s'est écoulé depuis la première photo sous le format jour/ heure/minute

Jour0-00h-00min.jpg
Jour0-00h-10min.jpg
Jour0-00h-20min.jpg
.....
Jour2-00h-00min.jpg

Je pense qu'il faut utiliser un script pour :
- récupérer le temps de la première photo
- récupérer le temps de la photo à renommer,
- Calculer la différence
- renommer la photo avec la différence entre le deux
Mais je ne maitrise pas l'utilisation du script ...
Merci de votre aide !


30/11-21 10:53
#2 : 02/12-21 18:34
David Lee
David Lee
Posts: 1071
Vous devrez trouver l'heure la plus proche en utilisant le script pré-batch (Cliquez sur "Tester le script..." )

Cela devrait faire l'affaire...

Dans le script pré-batch:

item = app.getItem(0);
match = item.name.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/);
time0 = Date.parse(match[1] + '-' + match[2] + '-' + match[3] + 'T' + match[4] + ':' + match[5] + ':' + match[6]);
n = app.itemCount;
for (j=1; j<n; j++) {
item = app.getItem(j);
match = item.name.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/);
time = Date.parse(match[1] + '-' + match[2] + '-' + match[3] + 'T' + match[4] + ':' + match[5] + ':' + match[6]);
time0 = Math.min(time0, time);
}


... et dans la fenêtre de script principale:

match = item.name.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/);
time = Date.parse(match[1] + '-' + match[2] + '-' + match[3] + 'T' + match[4] + ':' + match[5] + ':' + match[6]);
deltaT = Math.round((time-time0)/60000);
day = Math.floor(deltaT/1440);
hour = Math.floor(deltaT/60) % 24;
min = deltaT % 60;
return 'Day' + day + '-' + ('00' + hour).slice(-2) + 'h-' + ('00'+ min).slice(-2) + 'min';




02/12-21 18:34