5

C# を使用してApple iPhoneで撮影した画像から EXIF データを読み取るにはどうすればよいですか?

GPS関連のデータが必要です。

PS: Apple iPhoneで撮影した画像以外の EXIF の読み方は知っています。

4

3 に答える 3

8

Google Codeのexiflibraryプロジェクトと、それに関連する Code Projectの ExifLibrary for .NET記事を参照することをお勧めします。

32 の GPS 関連のものを含む 150 以上の既知の EXIF タグをサポートします。緯度と経度を取得するのは次のように簡単です。

var exif = ExifFile.Read(fileName);
Console.WriteLine(exif.Properties[ExifTag.GPSLatitude]);
Console.WriteLine(exif.Properties[ExifTag.GPSLongitude]);

バイナリ データをインタラクティブに視覚化する、きちんとした小さなデモ アプリケーションもあります。 ExifLibrary デモ

于 2010-01-30T23:20:30.080 に答える
3

MetadataExtractorライブラリは 2002 年から Java で利用でき、現在は .NET で完全にサポートされています。JPEG ファイルからの Exif GPS データをサポートし、他の多くのメタデータ タイプやファイル タイプもサポートしています。

iPhone 4iPhone 5、およびiPhone 6からの出力の例を次に示します。

NuGet 経由で入手できます。

PM> Install-Package MetadataExtractor

次に、GPS 位置にアクセスするには、次のコードを使用します。

var directories = ImageMetadataReader.ReadMetadata(jpegFilePath);

var gps = directories.OfType<GpsDirectory>().FirstOrDefault();

var location = gps?.GetGeoLocation();

if (location != null)
    Console.WriteLine("Lat {0} Lng {1}", location.Latitude, location.Longitude);

または、発見されたすべての値を出力するには:

var lines = from directory in directories
            from tag in directory.Tags
            select $"{directory.Name}: {tag.TagName} = {tag.Description}";

foreach (var line in lines)
    Console.WriteLine(line);
于 2015-08-09T21:49:28.943 に答える
2

以下を使用して画像をロードする場合:

Image image = Image.FromFile(imageName);

PropertyItemsEXIF 値は、画像の配列に読み込まれます。

これらのタグを EXIF データとして解釈するためのコードを見つけました。どこから入手したかは覚えていませんが、ここにコピーが見つかりました。このままのコードが地理位置情報コードを読み取るとは思いませんが、このページにはすべての EXIF タグのリストがあると主張されているため、このコードを拡張することができます。

タグ ID0x8825は GPSInfo です。GPSタグはこのページに列挙されています

于 2010-01-30T21:33:30.117 に答える