时间:2021-05-20
public List<string> GetXYFromPic(String jpgPath) { List<string> sXY = new List<string>(); try { //载入图片 Image objImage = Image.FromFile(jpgPath); //取得所有的属性(以PropertyId做排序) var propertyItems = objImage.PropertyItems.OrderBy(x => x.Id); foreach (PropertyItem objItem in propertyItems) { //只取Id范围为0x0000到0x001e if (objItem.Id >= 0x0000 && objItem.Id <= 0x001e) { switch (objItem.Id) { case 0x0002://设置纬度 if (objItem.Value.Length == 24) { //degrees(将byte[0]~byte[3]转成uint, 除以byte[4]~byte[7]转成的uint) double d = BitConverter.ToUInt32(objItem.Value, 0) * 1.0d / BitConverter.ToUInt32(objItem.Value, 4); //minutes(將byte[8]~byte[11]转成uint, 除以byte[12]~byte[15]转成的uint) double m = BitConverter.ToUInt32(objItem.Value, 8) * 1.0d / BitConverter.ToUInt32(objItem.Value, 12); //seconds(將byte[16]~byte[19]转成uint, 除以byte[20]~byte[23]转成的uint) double s = BitConverter.ToUInt32(objItem.Value, 16) * 1.0d / BitConverter.ToUInt32(objItem.Value, 20); double dblGPSLatitude = (((s / 60 + m) / 60) + d); sXY.Add(dblGPSLatitude.ToString("0.00000000")); } break; case 0x0004: //设置经度 if (objItem.Value.Length == 24) { //degrees(将byte[0]~byte[3]转成uint, 除以byte[4]~byte[7]转成的uint) double d = BitConverter.ToUInt32(objItem.Value, 0) * 1.0d / BitConverter.ToUInt32(objItem.Value, 4); //minutes(将byte[8]~byte[11]转成uint, 除以byte[12]~byte[15]转成的uint) double m = BitConverter.ToUInt32(objItem.Value, 8) * 1.0d / BitConverter.ToUInt32(objItem.Value, 12); //seconds(将byte[16]~byte[19]转成uint, 除以byte[20]~byte[23]转成的uint) double s = BitConverter.ToUInt32(objItem.Value, 16) * 1.0d / BitConverter.ToUInt32(objItem.Value, 20); double dblGPSLongitude = (((s / 60 + m) / 60) + d); sXY.Add(dblGPSLongitude.ToString("0.00000000")); } break; } } if (objItem.Id == 0x9003 || objItem.Id == 0x0132)//Id为0x9003表示拍照的时间,0x0132 最后更新时间 { var propItemValue = objItem.Value; var dateTimeStr = System.Text.Encoding.ASCII.GetString(propItemValue).Trim('\0'); var dt = DateTime.ParseExact(dateTimeStr, "yyyy:MM:dd HH:mm:ss", CultureInfo.InvariantCulture); sXY.Add(dt.ToString());//.ToShortDateString() } } objImage.Dispose(); return sXY; } catch (Exception ex) { //MessageManager.Show(jpgPath + "该图片文件损坏"); //listErrorMessage.Add(jpgPath + "该照片由于照片损坏,因此无法进行导入。"); return sXY; } }
以上就是c# 获取照片的经纬度和时间的示例代码的详细内容,更多关于c# 获取照片的经纬度和时间的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Java编程获取经纬度之间距离的方法。分享给大家供大家参考,具体如下:publicclassGeoUtil{/***根据经纬度和距离返回一个矩形范
java根据经纬度获取地址实现代码实现代码:publicclassGetLocation{publicstaticvoidmain(String[]args){
SQLSERVER根据地图经纬度计算距离的公式复制代码代码如下:go--创建经纬度距离计算函数CREATEFUNCTION[dbo].[fnGetDistanc
本文实例为大家分享了python爬虫获取小区经纬度、地址的具体代码,供大家参考,具体内容如下通过小区名称利用百度api可以获取小区的地址以及经纬度,但是由于ap
js获取经纬度的实现方法