GPS 座標を、EXIF 情報として保存できるバイト配列に変換する際に問題が発生しています。
この質問は、EXIF 座標を 3 つの有理数で表す必要があることを示していますdegrees/1, minutes/1, seconds/1
。10進座標をそれに変換するのに問題はありません。たとえば、42.1234567
は簡単に に変換され42/1, 7/1, 24/1
ます。
私の問題は、画像の EXIF 情報に書き込むときに、これをバイト配列として表す方法がわからないことです。私が使用しているライブラリはExifWorksと呼ばれ、VB.NET で使用しています。
ExifWorkssetProperty
メソッドは、EXIF フィールド ID、データとしてのバイト配列、およびデータ型の 3 つを取ります。使用方法は次のとおりです。
ew.SetProperty(TagNames.GpsLatitude, byteArrayHere, ExifWorks.ExifDataTypes.UnsignedRational)
私も試しました:
ew.SetPropertyString(TagNames.GpsLatitude, "42/1, 7/1, 24/1")
これも機能しません。
私の質問は、度分秒の座標をバイト配列に変換するにはどうすればよいですか? これまでに試したことはすべて無効な EXIF 情報になり、機能しません。一般的な解決策は問題ありません...必ずしもVB.netで機能する必要はありません。