c# 获取照片的经纬度和时间的示例代码
publicListGetXYFromPic(StringjpgPath) { List sXY=newList (); try { //载入图片 ImageobjImage=Image.FromFile(jpgPath); //取得所有的属性(以PropertyId做排序) varpropertyItems=objImage.PropertyItems.OrderBy(x=>x.Id); foreach(PropertyItemobjIteminpropertyItems) { //只取Id范围为0x0000到0x001e if(objItem.Id>=0x0000&&objItem.Id<=0x001e) { switch(objItem.Id) { case0x0002://设置纬度 if(objItem.Value.Length==24) { //degrees(将byte[0]~byte[3]转成uint,除以byte[4]~byte[7]转成的uint) doubled=BitConverter.ToUInt32(objItem.Value,0)*1.0d/BitConverter.ToUInt32(objItem.Value,4); //minutes(將byte[8]~byte[11]转成uint,除以byte[12]~byte[15]转成的uint) doublem=BitConverter.ToUInt32(objItem.Value,8)*1.0d/BitConverter.ToUInt32(objItem.Value,12); //seconds(將byte[16]~byte[19]转成uint,除以byte[20]~byte[23]转成的uint) doubles=BitConverter.ToUInt32(objItem.Value,16)*1.0d/BitConverter.ToUInt32(objItem.Value,20); doubledblGPSLatitude=(((s/60+m)/60)+d); sXY.Add(dblGPSLatitude.ToString("0.00000000")); } break; case0x0004://设置经度 if(objItem.Value.Length==24) { //degrees(将byte[0]~byte[3]转成uint,除以byte[4]~byte[7]转成的uint) doubled=BitConverter.ToUInt32(objItem.Value,0)*1.0d/BitConverter.ToUInt32(objItem.Value,4); //minutes(将byte[8]~byte[11]转成uint,除以byte[12]~byte[15]转成的uint) doublem=BitConverter.ToUInt32(objItem.Value,8)*1.0d/BitConverter.ToUInt32(objItem.Value,12); //seconds(将byte[16]~byte[19]转成uint,除以byte[20]~byte[23]转成的uint) doubles=BitConverter.ToUInt32(objItem.Value,16)*1.0d/BitConverter.ToUInt32(objItem.Value,20); doubledblGPSLongitude=(((s/60+m)/60)+d); sXY.Add(dblGPSLongitude.ToString("0.00000000")); } break; } } if(objItem.Id==0x9003||objItem.Id==0x0132)//Id为0x9003表示拍照的时间,0x0132最后更新时间 { varpropItemValue=objItem.Value; vardateTimeStr=System.Text.Encoding.ASCII.GetString(propItemValue).Trim('\0'); vardt=DateTime.ParseExact(dateTimeStr,"yyyy:MM:ddHH:mm:ss",CultureInfo.InvariantCulture); sXY.Add(dt.ToString());//.ToShortDateString() } } objImage.Dispose(); returnsXY; } catch(Exceptionex) { //MessageManager.Show(jpgPath+"该图片文件损坏"); //listErrorMessage.Add(jpgPath+"该照片由于照片损坏,因此无法进行导入。"); returnsXY; } }
以上就是c#获取照片的经纬度和时间的示例代码的详细内容,更多关于c#获取照片的经纬度和时间的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。