Je veux faire l'exemple de l'application WinForm C# pour la chasse des photos en double sur mon ordinateur portable.
Ma question est: Y a-t-il un enregistrement, une étiquette, des données Exif ou quoi que ce soit d'autre qui est unique pour le fichier JPG (photo).
Je peux donc lire ces données dans un ensemble de données et rechercher des doublons.Y at-il quelque chose d'unique pour les fichiers JPG afin que je puisse conspirer des dupicates
Répondre
On pourrait dire que les données Exif sont uniques. Ce tableau vous donne un bon résumé de ce que pour obtenir de Exif Data: http://en.wikipedia.org/wiki/Exchangeable_image_file_format#Example
Regardez ce projet, que le code vous aidera à:
Dans ce stackoveflow question, il y a une bonne Pour obtenir des données Exif:
"Si vous compilez la version 3 de Framework (ou une version ultérieure), vous pouvez charger les images à l'aide de la classe BitmapSource, qui expose les métadonnées EXIF via la propriété Metadata"
Néanmoins, je voudrais comparer le nom et la date, et cela doit être suffisant.
Je voudrais juste comparer les propriétés et si elles correspondent toutes, puis hacher le contenu et comparer.
Vous pouvez lire les images octet par octet et les comparer. S'ils ne correspondent pas, arrêtez de lire.
Quelque chose comme ça. C'est assez vague mais vous aurez l'idée.
while (match && !end)
{
b1 = getnexctbytefromfilefirstfile();
b2 = getnextbytefromfilesecondfile();
if(b1 != b2)
{
match = false;
}
if(b1 == null || b2 == null)
{
end = true;
}
}
Pourquoi ne pas utiliser la somme de contrôle pour le fichier? créer une table de hachage pour tous les fichiers que vous avez scannés avec la somme de contrôle comme clé
Si vous souhaitez suivre la procédure de hachage, consultez this question.
Propriétés du fichier? Sont-ils identiques même si le fichier est copié à partir de SD à différents intervalles de temps? – adopilot
Cela dépend du programme que vous utilisez, mais Windows conserve les dates. – netadictos