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
Avez-vous vu ceci: Lossless JPEG Rewrites in C#
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.
Merci, c'est un article intéressant. Il s'applique aux fichiers JFIF, mais pas à EXIF. Pourtant, c'est une approche intelligente. – TMarshall