Sommes de contrôle différentes pour fichiers identiques.
Fermé
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
-
3 nov. 2013 à 12:18
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 3 nov. 2013 à 16:52
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 3 nov. 2013 à 16:52
A voir également:
- Sommes de contrôle différentes pour fichiers identiques.
- Controle parental pc - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- Renommer plusieurs fichiers - Guide
- Fichiers bin - Guide
4 réponses
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
3 nov. 2013 à 12:34
3 nov. 2013 à 12:34
hello
comment sont transférés les fichiers ? avec des commandes genre copy ou dd ?
des différences reportées par identify -verbose fichier.jpg ?
comment sont transférés les fichiers ? avec des commandes genre copy ou dd ?
des différences reportées par identify -verbose fichier.jpg ?
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
110
Modifié par jipicy le 3/11/2013 à 13:24
Modifié par jipicy le 3/11/2013 à 13:24
Salut,
Je n'ai pas précisé, c'est vrai (je suis sous Lucid au passage) :
les photos sont transférées avec un soft appelé Rapid Photo Downloader qui permet justement de les renommer au passage selon certains paramètres (dates de prise de vue, étiquette pour créer des dossiers par ex.)
Après, derrière, je ne sais pas sur quoi il se base pour effectuer le transfert.
https://damonlynch.net/rapid/
http://doc.ubuntu-fr.org/rapid-photo-downloader
Oui il y a des différences entre deux fichiers avec lesquels j'essaie la commande identify -verbose fichier.jpg :
Ligne 1 : le chemin d'accès passé à la commande identify change entre les deux fichiers. Forcément.
Lignes 60-61 :
date create : ne sont pas identiques (plus récents sur le fichier présent sur le PC)
et date modify : l'heure du fichier PC est shiftée de -1 par rapport au fichier de la carte SD.
Ligne 77 : exif:ExifOffset : la valeur numérique diffère (340 vs 348)
Ligne 90 : exif:GPSInfo: 43120 vs exif:GPSInfo: 12338
Etc. il y a deux trois autres valeurs numériques qui changent de l'un à l'autre sur certains paramètres exif.
Et pour finir :
Ligne 126 : Profile-exif: 65532 bytes vs Profile-exif: 21036 bytes
Ligne 130 : Filesize: 1.798MB vs Filesize: 1.753MB
Lignes 132,134 :
Pixels per second: 28.22M
User time: 0.560u
Elapsed time: 0:01.570
vs
Pixels per second: 29.25M
User time: 0.540u
Elapsed time: 0:01.550
Merci.
Je n'ai pas précisé, c'est vrai (je suis sous Lucid au passage) :
les photos sont transférées avec un soft appelé Rapid Photo Downloader qui permet justement de les renommer au passage selon certains paramètres (dates de prise de vue, étiquette pour créer des dossiers par ex.)
Après, derrière, je ne sais pas sur quoi il se base pour effectuer le transfert.
https://damonlynch.net/rapid/
http://doc.ubuntu-fr.org/rapid-photo-downloader
Oui il y a des différences entre deux fichiers avec lesquels j'essaie la commande identify -verbose fichier.jpg :
Ligne 1 : le chemin d'accès passé à la commande identify change entre les deux fichiers. Forcément.
Lignes 60-61 :
date create : ne sont pas identiques (plus récents sur le fichier présent sur le PC)
et date modify : l'heure du fichier PC est shiftée de -1 par rapport au fichier de la carte SD.
Ligne 77 : exif:ExifOffset : la valeur numérique diffère (340 vs 348)
Ligne 90 : exif:GPSInfo: 43120 vs exif:GPSInfo: 12338
Etc. il y a deux trois autres valeurs numériques qui changent de l'un à l'autre sur certains paramètres exif.
Et pour finir :
Ligne 126 : Profile-exif: 65532 bytes vs Profile-exif: 21036 bytes
Ligne 130 : Filesize: 1.798MB vs Filesize: 1.753MB
Lignes 132,134 :
Pixels per second: 28.22M
User time: 0.560u
Elapsed time: 0:01.570
vs
Pixels per second: 29.25M
User time: 0.540u
Elapsed time: 0:01.550
Merci.
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
110
Modifié par Swiss Knight le 3/11/2013 à 14:16
Modifié par Swiss Knight le 3/11/2013 à 14:16
ps : il y a dans le résultat de la commande identify, une ligne "signature", elle veut dire quoi (si quelqu'un sait...) ?
J'ai vérifié ; il ne s'agit apparemment pas de la somme md5 ni sha.
Existe-t-il une commande pour ne sortir que cette ligne signature ?
EDIT : alors j'ai trouvé la réponse à cette question ici :
https://imagemagick.org/index.php
Je ne sais pas si c'est mieux d'utiliser ça, ou une somme shaX pour vérifier si deux images sont identiques ou non.
Apparemment les sommes de contrôles sont plus sensibles puisqu'elles changent sur les fichiers jpg (et non les raw) après un simple transfert (j'ai encore vérifié : un cp source/image.jpg Desktop/imagecopiee.jpg change déjà ces sommes de contrôle) tandis que les signatures ne changent pas.
J'ai vérifié ; il ne s'agit apparemment pas de la somme md5 ni sha.
Existe-t-il une commande pour ne sortir que cette ligne signature ?
EDIT : alors j'ai trouvé la réponse à cette question ici :
https://imagemagick.org/index.php
%# CALCULATED: 'signature' hash of image valuesdonc avec un identify -format "%#" image.jpg on sort uniquement la signature.
Je ne sais pas si c'est mieux d'utiliser ça, ou une somme shaX pour vérifier si deux images sont identiques ou non.
Apparemment les sommes de contrôles sont plus sensibles puisqu'elles changent sur les fichiers jpg (et non les raw) après un simple transfert (j'ai encore vérifié : un cp source/image.jpg Desktop/imagecopiee.jpg change déjà ces sommes de contrôle) tandis que les signatures ne changent pas.
dubcek
Messages postés
18744
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 septembre 2024
5 617
Modifié par dubcek le 3/11/2013 à 14:24
Modifié par dubcek le 3/11/2013 à 14:24
les dates sont différentes, c'est normal mais elles ne sont pas dans le fichier.
il suffit que le soft de copie change 1 bit et les signatures seront différentes.
il suffit que le soft de copie change 1 bit et les signatures seront différentes.
$ identify -verbose fichier.jpg | awk '/signa/ {print $2}'
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
110
3 nov. 2013 à 16:10
3 nov. 2013 à 16:10
Okay, mais la somme md5 ou sha est plus sensible puisqu'un changement dans les méta données change cette somme de calcul, quand bien même l'image est strictement identique.
Mais la signature ne change pas elle. Même après ces quelques petits changements lors du transfert. Je vais donc me basé sur cette valeur pour vérifier si mes images ont bien été copiées sur le disque.
J'ai juste un petit problème à résoudre :
les commandes identify -verbose fichier.jpg | awk '/signa/ {print $2}'
ou identify -format "%#" fichier.jpg
me donnent exactement le même résultat : la valeur de la signature de fichier.jpg.
C'est très bien.
Mais je souhaite faire en sorte que cette valeur apparaisse dans la seconde colonne d'un fichier, et que, dans la 1ère on trouve le nom du fichier. Comme ça, visuellement, lorsque j'ouvre le fichier, je peux être sûr que telle signature correspond à tel fichier.
Pour l'instant j'ai ce petit bout de code :
Mais cat ne permet pas la concaténation horizontale.
Et je ne sais pas si on peut faire un truc du genre :
Du moins, ça ne fonctionne en tout cas pas comme ça ; il y a le nom du fichier sur une ligne et sa signature sur la suivante.
Je devrais trouver comment résoudre ça sans trop de difficulté.
Mais ensuite il faudra que je modifie ce bout de script pour qu'il vérifie parmi les images présentes sur le PC, UNIQUEMENT celles qui portent le même nom que ceux qui existent sur la carte SD. Pour éviter de passer en revue les XXXX photos présentent sur l'ordi qui auraient été uploadées depuis d'autres cartes par exemple.
Affaire à suivre.
Mais la signature ne change pas elle. Même après ces quelques petits changements lors du transfert. Je vais donc me basé sur cette valeur pour vérifier si mes images ont bien été copiées sur le disque.
J'ai juste un petit problème à résoudre :
les commandes identify -verbose fichier.jpg | awk '/signa/ {print $2}'
ou identify -format "%#" fichier.jpg
me donnent exactement le même résultat : la valeur de la signature de fichier.jpg.
C'est très bien.
Mais je souhaite faire en sorte que cette valeur apparaisse dans la seconde colonne d'un fichier, et que, dans la 1ère on trouve le nom du fichier. Comme ça, visuellement, lorsque j'ouvre le fichier, je peux être sûr que telle signature correspond à tel fichier.
Pour l'instant j'ai ce petit bout de code :
pathtocheck="/media/sdcard/pictures"
for file in $(find "${pathtocheck}" -iname *.jpg)
do echo "${file}" >> filenamecheck.txt
identify -format "%#" "${file}" >> filecheck.txt
done
wait
cat filenamecheck.txt filecheck.txt > out.txt
Mais cat ne permet pas la concaténation horizontale.
Et je ne sais pas si on peut faire un truc du genre :
for file in $(find "${pathtocheck}" -iname *.jpg)
do echo "${file}" >> filenamecheck.txt & identify -format "%#" "${file}" >> filecheck.txt
done
Du moins, ça ne fonctionne en tout cas pas comme ça ; il y a le nom du fichier sur une ligne et sa signature sur la suivante.
Je devrais trouver comment résoudre ça sans trop de difficulté.
Mais ensuite il faudra que je modifie ce bout de script pour qu'il vérifie parmi les images présentes sur le PC, UNIQUEMENT celles qui portent le même nom que ceux qui existent sur la carte SD. Pour éviter de passer en revue les XXXX photos présentent sur l'ordi qui auraient été uploadées depuis d'autres cartes par exemple.
Affaire à suivre.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 415
3 nov. 2013 à 16:52
3 nov. 2013 à 16:52
Salut,
for file in $(find "${pathtocheck}" -iname *.jpg)
do echo "${file}" : $(identify -format '%#' ${file})" >> filecheck.txt
done