4

System.Drawing.Image.Save または .NET Framework v3.5 を使用する C# アプリケーションで同様の方法を使用して、画像を EXIF 形式で保存したいと考えています。MSDN のドキュメントには、ImageFormat のオプションとして EXIF が記載されています。ただし、サポートされていないようです-少なくとも、私には不明な構成がなければサポートされていません. ImageCodecInfo.GetImageEncoders() を介して組み込みエンコーダーを列挙すると、EXIF は含まれません。(私のマシン (Vista Ultimate x64) に組み込まれているエンコーダーは、BMP、JPEG、GIF、TIFF、および PNG です。) ImageFormat.Exif プロパティを使用して画像を保存すると、デフォルトの PNG 形式が取得されます。

.NET 3.5 を使用して画像を EXIF 形式で保存するにはどうすればよいですか?

4

2 に答える 2

4

EXIF は、それ自体が画像ファイル形式ではなく、JEITA によって指定された DSC (Digital Still Camera) 規格に準拠した JPEG 画像内にあるメタデータの形式です。

GDI+ (つまり、Microsoft .NET Framework) では、Image.PropertyItems を介してメタデータ イメージ プロパティを読み書きできますが、GDI+ によって公開される EXIF プロパティはかなり扱いにくく、期待どおりに値を変換しません。これらの値をネイティブに読み書きできるようにするには、実際には多くの作業が必要です (たとえば、JEITA 仕様に従って特別にエンコードされた値を含むバイナリ フィールドをアンパックする必要があります)。

すべての標準 EXIF プロパティを実装する簡単なオープン ソース ライブラリは、http://code.google.com/p/exif-utils/にあります。これがおそらく最も簡単な方法です。ファイルを読み込み、すべての EXIF プロパティを出力し、画像にプロパティを追加する簡単なデモをご覧ください。

于 2009-07-12T23:33:13.853 に答える
0

これを見たことがありますか: C# での Lossless JPEG Rewrites

于 2009-03-31T08:25:38.220 に答える