Copier les métadonnées EXIF de TIF vers JPEG en C#/VB.NET
Question
J'apprécierais vraiment que vous puissiez faire la lumière sur ce problème.J'ai 2 images, l'une a été créée à partir d'un fichier TIF avec des métadonnées, l'autre est une image en mémoire qui sera enregistrée au format JPEG.Ensuite, j'utilise cette routine pour transférer les métadonnées exif de la première image vers la seconde (c'est-à-dire de celle créée à partir du fichier tif vers l'image en mémoire) :
For Each _p In image1.PropertyItems
image2.SetPropertyItem(_p)
Next
Et cela fonctionne parfaitement bien.Tous les éléments exif sont copiés avec succès.Je l'ai confirmé en utilisant des montres en mode débogage.Le problème survient lorsque vous enregistrez l'image2 au format JPEG en utilisant ceci :
Dim eps As EncoderParameters = New EncoderParameters(1)
eps.Param(0) = New EncoderParameter(Encoder.Quality, 85)
Dim ici As ImageCodecInfo = GetEncoderInfo("image/jpeg")
image2.Save("C:\1.jpg", ici, eps)
Cependant, seules très peu de propriétés EXIF sont enregistrées avec le fichier jpeg image2, à savoir uniquement le modèle d'appareil photo et le fabricant de l'appareil photo.Cependant, si j'enregistre l'image2 au format TIF, toutes les propriétés du tif d'origine seront là.Quelqu'un peut-il expliquer pourquoi ?
Merci.
La solution
Jeter un coup d'œil à Exiv2Sharp - ce wrapper autour d'Exiv2 devrait fournir ce que vous recherchez.