前提
c#でoozcitak/exiflibraryを使ってJPGにGPSの座標情報を追加しようとしていますがその方法がわかりません
oozcitak/exiflibrary(nugetでExifLibNetで出てくるライブラリ)
https://github.com/oozcitak/exiflibrary/blob/master/README.md#
実現したいこと
GPS座標をdouble型で(+35.31245,+139.31245)のように持っていますがその情報を画像に入れたいと思っています。
試したことで使用している方法を使えば10進数を60進数に変換してから入れられそうですが、なにか綺麗な形で直接10進数から入れる方法はないでしょうか。
double lat = +35.31245; double lon = +139.31245
試したこと
試行錯誤しながら以下の方法では座標が入れられました。
しかし、10進数の状態から直接座標を入れたいと思っています。
using ExifLibrary; string picPath = @"C:\test\test.JPG"; ImageFile file = ImageFile.FromFile(picPath); file.Properties.Set(ExifTag.GPSLatitudeRef, GPSLatitudeRef.North); file.Properties.Set(ExifTag.GPSLatitude,(float)35,(float)44,(float)6.32); file.Properties.Set(ExifTag.GPSLongitudeRef,GPSLongitudeRef.East ); file.Properties.Set(ExifTag.GPSLongitude, (float)139, (float)17, (float)0.91); file.Save(picPath );
10進数を60進数に変換するという計算式はどういうものでしょうか
60進数は角度を度分秒で表した形式で
緯度: 35° 18′ 44.819″
経度: 139° 18′ 44.820″
のような形式です
10進数はこれを小数で表示した形式で
緯度 : 35.31245
経度 : 139.31245
の形式です。
https://d-and-i.hatenablog.com/entry/2016/09/12/090000
などの変換式を参考にして
事前に35.31245を35° 18′ 44.819″に変換して
file.Properties.Set(ExifTag.GPSLatitude,(float)35,(float)44,(float) 44.819);
のようにすれば値の設定はできるのですが、
このライブラリの関数を使って引数1個で値の設定ができないかと思った次第です。
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー

