Question

Existe-t-il des marqueurs de fin d'exif / fin de xmp / fin de iptc / début de données que je pourrais utiliser pour obtenir une somme de contrôle de la partie données d'un jpg / jpeg (et d'autres formats d'image) ?

Était-ce utile?

La solution 6

MediaTags a le soutien total de contrôle pour les fichiers JPEG, MP3, M4A, etc

Autres conseils

Je pense que cette question est liée à celle-ci Calculer hachage de seulement les données d'image de base (métadonnées) pour l'exclusion d'une image , https: // stackoverflow.com/a/10075170/890106 donne un élément de réponse si vous cherchez code.

Il peut fonctionne pas avec toutes les variantes JPG cependant: certains d'entre eux peuvent intégrer plusieurs images (MPF / CIPA Format multi-images, plus d'informations à http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/MPF.html ) et vous pourrait encore avoir des métadonnées. En outre, certains logiciels mis UID sous forme de - [0-9A-F] + - à la fin du fichier et il ne doit pas être lu. solution sûre si probablement pixels checksum (bien que vous pouvez toujours avoir une influence de l'orientation, le profil de couleur, ..).

Un moyen facile d'obtenir une somme de hachage seulement les données de pixels serait de convertir le JPEG en BMP 32 bits ou encore en PNG et pour calculer un checksums de cela. Cela supprime toutes les informations associées et des fichiers JPEG serait même correspondre avec les fichiers JPEG encodages differnt qui mènent aux mêmes données de pixels. Vous pouvez bien sûr utiliser aussi les données de pixels mémoire des PGB résultant directement si vous avez (à savoir Windows a plusieurs fonctions API pour l'obtenir à partir de tout type d'image pris en charge).

Oui en jpeg et exif, je ne sais pas pour les autres.

La spécification JPEG que j'ai s'appelle JFIF (JPEG File Interchange Format). Elle provient de l'annexe B de la norme ISO 10918-1 et, comme toutes les spécifications ISO, il faut une lecture attentive pour comprendre comment traduire la spécification en structures de données.Je pense ce est beaucoup plus facile à suivre

le format EXIF ​​s'analyse un peu comme le format TIFF.chaque morceau a un type et une taille, vous parcourez donc simplement les morceaux jusqu'à arriver au morceau de données d'image.il a un pointeur vers les données d'image (en fait des pointeurs vers des bandes, mais je suis presque sûr que vous pouvez supposer que tout après la première bande de données d'image jusqu'à la fin du fichier est des données d'image.

Le format exif a son propre site internet

Vous devrez regarder chaque format. Pour JPEG, il ressemble à la structure implique que vous pouvez juste faire une somme de contrôle de la sections qui commencent par ROPED (par exemple 0xFFE1) et contrôle les octets spécifiés après chaque marqueur (Il ressemble à la longueur suit le marqueur et est de 2 octets au format grand-boutiste). Pour plus de détails, voir .

Puisque vous voulez faire cela pour différents formats d'image, vous devez simplement utiliser une bibliothèque de décompression d'image à des fins générales et exécutez votre contrôle sur les données non compressées. Cela vous permettra de faire correspondre les images identiques, même si elles sont codées différemment sur le disque.

Si vous voulez vous limiter au format JPEG, vous pouvez contrôle les données entre SOI et EOI. Cette réponse peut être légèrement adapté pour faire ce que vous avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top