2009-03-24 8 views
4

Je souhaite enregistrer une image au format EXIF ​​en utilisant System.Drawing.Image.Save ou une méthode similaire dans une application C# utilisant .NET Framework v3.5. La documentation MSDN répertorie EXIF ​​en tant qu'option pour ImageFormat. Cependant, il ne semble pas être pris en charge - du moins pas sans une configuration inconnue de moi. Lorsque j'énumère les encodeurs intégrés via ImageCodecInfo.GetImageEncoders() EXIF ​​n'est pas inclus. (Les encodeurs intégrés sur ma machine (Vista Ultimate x64) sont: BMP, JPEG, GIF, TIFF et PNG.) Si je sauvegarde une image en utilisant la propriété ImageFormat.Exif, j'ai simplement le format PNG par défaut. Comment enregistrer une image au format EXIF ​​avec .NET 3.5?Comment enregistrer un fichier image au format .EXIF dans .NET 3.5

Répondre

0

Avez-vous vu ceci: Lossless JPEG Rewrites in C#

+0

Merci, c'est un article intéressant. Il s'applique aux fichiers JFIF, mais pas à EXIF. Pourtant, c'est une approche intelligente. – TMarshall

4

EXIF ​​est pas un format de fichier image en soi, mais un format de méta-données trouvées dans les images JPEG conformes au DSC (appareil photo numérique) standard spécifié par JEITA . GDI + (Microsoft.NET Framework) vous permet de lire/écrire des propriétés d'image de métadonnées via Image.PropertyItems, mais les propriétés EXIF ​​exposées par GDI + sont assez lourdes et ne convertissent pas les valeurs comme vous le souhaitez. Beaucoup de travail est réellement nécessaire pour pouvoir lire/écrire nativement ces valeurs (par exemple, vous devez décompresser les champs binaires contenant des valeurs spécialement codées selon la spécification JEITA).

Une bibliothèque open-source simple qui implémente toutes les propriétés EXIF ​​standard peut être trouvée à http://code.google.com/p/exif-utils/ Ceci est probablement le moyen le plus facile de le faire. Voir the simple included demo qui lit dans un fichier, imprime toutes les propriétés EXIF, puis ajoute une propriété à l'image.

Questions connexes