理解EXIF经度和纬度
Making sense of EXIF longitude and latitude
如果我右键单击图像上的细节,我会在 GPS 下得到以下内容
查询 EXIF(GpsLatitude 和 GpsLongitude)数据时,我得到
和
我可以看到第 0 行和第 8 行是度数和分钟,但其余部分没有任何意义。我错过了什么?
谢谢
无法获取最后一组显示小数位(ToDouble 不起作用),但这非常接近
If Not vLong Is Nothing Then
vLong1 = BitConverter.ToUInt32(vLong, 0)
vLong2 = BitConverter.ToUInt32(vLong, 8)
vLong3 = BitConverter.ToUInt32(vLong, 16)
vLongDecode = CType(vLong1, String) & " " & CType(vLong2, String) & " " & CType(vLong3, String)
End If
If Not vLat Is Nothing Then
vLat2 = BitConverter.ToUInt32(vLat, 8)
vLat1 = BitConverter.ToUInt32(vLat, 0)
vLat3 = BitConverter.ToUInt32(vLat, 16)
vLatDecode = CType(vLat1, String) & " " & CType(vLat2, String) & " " & CType(vLat3, String)
End If
Exif 将纬度和经度存储为三个有理数(分数),其中分子和分母的长度为四个字节。
在您的示例中,您只显示了前 14 个值。有 24 个字节的值需要考虑。
具体来说,纬度小时值为0x00000027 / 0x00000001
,或39 / 1
。
注意值是小端存储的,所以字节必须颠倒。
仅采用字节 0/8/16,您可能会丢失溢出到其他字节的值,并且您还假设分母始终为一。
使用库从图像中提取此信息可能要容易得多。我为 .NET 维护了这样一个库,它可以很好地与 VB.NET 一起使用,并且完全支持 Exif 和来自许多文件格式的许多其他类型的元数据。
如果你有兴趣,看看https://github.com/drewnoakes/metadata-extractor-dotnet
如果我右键单击图像上的细节,我会在 GPS 下得到以下内容
查询 EXIF(GpsLatitude 和 GpsLongitude)数据时,我得到
和
我可以看到第 0 行和第 8 行是度数和分钟,但其余部分没有任何意义。我错过了什么?
谢谢
无法获取最后一组显示小数位(ToDouble 不起作用),但这非常接近
If Not vLong Is Nothing Then
vLong1 = BitConverter.ToUInt32(vLong, 0)
vLong2 = BitConverter.ToUInt32(vLong, 8)
vLong3 = BitConverter.ToUInt32(vLong, 16)
vLongDecode = CType(vLong1, String) & " " & CType(vLong2, String) & " " & CType(vLong3, String)
End If
If Not vLat Is Nothing Then
vLat2 = BitConverter.ToUInt32(vLat, 8)
vLat1 = BitConverter.ToUInt32(vLat, 0)
vLat3 = BitConverter.ToUInt32(vLat, 16)
vLatDecode = CType(vLat1, String) & " " & CType(vLat2, String) & " " & CType(vLat3, String)
End If
Exif 将纬度和经度存储为三个有理数(分数),其中分子和分母的长度为四个字节。
在您的示例中,您只显示了前 14 个值。有 24 个字节的值需要考虑。
具体来说,纬度小时值为0x00000027 / 0x00000001
,或39 / 1
。
注意值是小端存储的,所以字节必须颠倒。
仅采用字节 0/8/16,您可能会丢失溢出到其他字节的值,并且您还假设分母始终为一。
使用库从图像中提取此信息可能要容易得多。我为 .NET 维护了这样一个库,它可以很好地与 VB.NET 一起使用,并且完全支持 Exif 和来自许多文件格式的许多其他类型的元数据。
如果你有兴趣,看看https://github.com/drewnoakes/metadata-extractor-dotnet