WIC (Windows Imaging Component)를 내부적으로 사용하는 WPF 클래스 BitmapMetadata
을 사용하여 누구든지 GPS 데이터를 성공적으로 읽었습니까?WIC/WPF : System.GPS.Longitude 및 System.GPS.Latitude는 항상 BitmapMetadata를 통해 NULL을 반환합니다.
Windows (8.1) 탐색기와 XnView와 같은 외부 도구가 GPS 좌표를 표시하는 이미지가 있습니다.
내가 클래스 BitmapFrame
의 재산 Metadata
를 통해 사용할 수있는 클래스 BitmapMetadata
사용하여 이러한 데이터를 추출하려고 : altitude
의
var md = (BitmapMetdata)extractedFrame.Metadata;
var altitude = md.GetQuery("System.GPS.Altitude");
var altitudeProxy = md.GetQuery("System.GPS.Altitude.Proxy");
var altitudeRef = md.GetQuery("System.GPS.AltitudeRef");
var longitude = md.GetQuery("System.GPS.Longitude");
var longitudeProxy = md.GetQuery("System.GPS.Longitude.Proxy");
var longitudeRef = md.GetQuery("System.GPS.LongitudeRef");
var latitude = md.GetQuery("System.GPS.Latitude");
var latitudeProxy = md.GetQuery("System.GPS.Latitude.Proxy");
var latitudeRef = md.GetQuery("System.GPS.LatitudeRef");
결과 (System.Double), altitudeRef
(System.Byte), longitudeRef
을 (시스템 .String) 및 latitudeRef
(System.String)은 모두 정상이며 적절한 데이터 ("510.70", "0", "N", "E")를 검색합니다.
longitude
및 latitude
은 System.Double 의 배열이어야하지만 항상 NULL입니다.
".Proxy"접미사를 사용하는 결과는 이상한 문자열 데이터를 반환합니다. 이상한 문자열 데이터는 구문 분석 방법과 culture가 불변하거나 그렇지 않은 경우에 반환됩니다. MSDN 문서는 문자열에 대해서는 전혀 다른 것을 알려줍니다. 적어도 경도와 위도에 대한 "유효한"데이터가있을 것입니다.
누락 된 버그 또는 내 잘못입니까?
@StefanFalk 대답이 아니라 질문입니다. 응답이 합리적인 값을 반환하기 때문에 당신이 downvoter 있다면 나는 이것을 되돌릴 것을 제안합니다. – springy76
@ springy76 죄송합니다! 나는 그 실수를 리뷰하면서 생각하고 이것이 실제적인 질문이라고 생각했다. 나는 내 downvote를 취소 할 것이다. 그러나 SO가 나의 투표 결정을 그때까지 잠그기 때문에 그녀가 나의 편집을 받아 들일 때까지 나는 기다려야한다. – displayname
BTW : 'ulong []': "/ xmp/exif : GPSLatitude"와 "/ xmp/exif : GPSLongitude"를 반환 할 수있는'meta.GetQuery() – springy76