当然再次强调,找东西尽量用google,百度是非常低效,找出来的代码,好多也不适用,吐槽下百度最喜欢收录CSDN的文章,只是物以类聚,垃圾对垃圾,广告婊子一个。真要搜索,建议还是加上site:。
正式介绍主角,图片Exif信息的读取,就靠MetadataExtractor完成,在nuget上直接有。

MetadataExtractor类库
调用方法非常简洁,一句代码完成,其他代码都是用来提取信息,处理字符串、集合之类的。
核心代码如下:
=(filePath);
以上是笔者对Exif感兴趣的内容作的提取,只需linq和正则就可以游刃有余。
=(filePath);stringwidthStr=(s=!="File").Select(k=(t==="ImageWidth")).FirstOrDefault().Description;dr[ColNameOfImageWidth]=((widthStr,"\\d+").Value);stringheightStr=(s=!="File").Select(k=(t==="ImageHeight")).FirstOrDefault().Description;dr[ColNameOfImageHeight]=((heightStr,"\\d+").Value);if((filePath).ToLower()==".jpg"||(filePath).ToLower()==".jpeg"){varmaker=(s=!="File").Select(k=(t==="Make")).FirstOrDefault(x=x!=null);if(maker!=null){dr[ColNameOfMake]=;}varmodel=(s=!="File").Select(k=(t==="Model")).FirstOrDefault(x=x!=null);if(model!=null){dr[ColNameOfModel]=;}varpicDate=(s==="ExifSubIFD").(t==="Date/TimeOriginal");if(picDate!=null){stringstr=;if(!(str)){dr[ColNameOfPicDate]=((0,10).Replace(':','-')+(10));}}varjingdu=(s=!="File").Select(k=(t==="GPSLatitude")).FirstOrDefault(x=x!=null);if(jingdu!=null){stringstr=;MatchCollectionmatchCollection=(str,"\\d+");dr[ColNameOfLatitude]=(matchCollection[0].Value)+(matchCollection[1].Value)/60.0+(matchCollection[1].Value)/60.0/60.0;}varweidu=(s=!="File").Select(k=(t==="GPSLongitude")).FirstOrDefault(x=x!=null);if(weidu!=null){stringstr=;MatchCollectionmatchCollection=(str,"\\d+");dr[ColNameOfLongitude]=(matchCollection[0].Value)+(matchCollection[1].Value)/60.0+(matchCollection[1].Value)/60.0/60.0;}varhaiba=(s=!="File").Select(k=(t==="GPSAltitude")).FirstOrDefault(x=x!=null);if(haiba!=null){stringstr=;dr[ColNameOfAltitude]=(str,"\\d+").Value;}
简单给大家看下Exif读取到的信息。

有价值的信息都存在这些tag里面

jpeg方面的信息
photoshop处理过的信息都保存在内,所以不想让Adobe告的话,最后一步最好把Exif给删除掉,哈哈。

photoshop处理过的信息都保存在内

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。