C# UWP:ImageProperties在本地计算机和仿真器上的奇怪行为

C# UWP:ImageProperties在本地计算机和仿真器上的奇怪行为,c#,image,image-processing,uwp,C#,Image,Image Processing,Uwp,我正试图从JPG和CR2文件中获取Exif信息 var file1 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Images/IMG_3163.JPG")); var file2 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Images/IMG_3163.CR2"));

我正试图从JPG和CR2文件中获取Exif信息

        var file1 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Images/IMG_3163.JPG"));
        var file2 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Images/IMG_3163.CR2"));
        await GetExifValues(file1);
        await GetExifValues(file2);

    public async Task GetExifValues(StorageFile file_)
    {
        ImageProperties props = await file_.Properties.GetImagePropertiesAsync();
        var requests = new System.Collections.Generic.List<string>();
        requests.Add("System.Photo.DateTaken");
        requests.Add("System.Photo.FNumber");
        requests.Add("System.Photo.ExposureTimeNumerator");
        requests.Add("System.Photo.ExposureTimeDenominator");
        requests.Add("System.Photo.ISOSpeed");
        requests.Add("System.Photo.Orientation");

        IDictionary<string, object> retrievedProps = await props.RetrievePropertiesAsync(requests);

        Debug.WriteLine("Parsing Exif from: " + file_.Path.ToString());

        if (retrievedProps.ContainsKey("System.Photo.DateTaken")) Debug.WriteLine("Exif_DateTaken: " + (DateTimeOffset)retrievedProps["System.Photo.DateTaken"]);
        if (retrievedProps.ContainsKey("System.Photo.FNumber")) Debug.WriteLine("Exif_FNumber: " + (double)retrievedProps["System.Photo.FNumber"]);
        if (retrievedProps.ContainsKey("System.Photo.ExposureTimeNumerator")) Debug.WriteLine("Exif_ExposureTimeNumerator: " + (uint)retrievedProps["System.Photo.ExposureTimeNumerator"]);
        if (retrievedProps.ContainsKey("System.Photo.ExposureTimeDenominator")) Debug.WriteLine("Exif_ExposureTimeDenominator: " + (uint)retrievedProps["System.Photo.ExposureTimeDenominator"]);
        if (retrievedProps.ContainsKey("System.Photo.ISOSpeed")) Debug.WriteLine("Exif_ISOSpeed: " + (ushort)retrievedProps["System.Photo.ISOSpeed"]);
        if (retrievedProps.ContainsKey("System.Photo.Orientation")) Debug.WriteLine("Exif_Orientation: " + (ushort)retrievedProps["System.Photo.Orientation"]);

        Debug.WriteLine("_______________________________");
    }
但是,如果它在移动模拟器或手机上运行,则不会从CR2文件中提取信息

    Parsing Exif from: C:\Data\SharedData\PhoneTools\AppxLayouts\72787847-7999-4ce9-8ad2-72f637364ff9VS.Debug_x86.smith\Images\IMG_3163.JPG
    Exif_DateTaken: 6/19/2017 11:19:09 AM +03:00
    Exif_FNumber: 2.8
    Exif_ExposureTimeNumerator: 1
    Exif_ExposureTimeDenominator: 250
    Exif_ISOSpeed: 2000
    Exif_Orientation: 1
    _______________________________
    Parsing Exif from: C:\Data\SharedData\PhoneTools\AppxLayouts\72787847-7999-4ce9-8ad2-72f637364ff9VS.Debug_x86.smith\Images\IMG_3163.CR2
    ...results should be here...
    _______________________________
因此,相同的简单代码在移动仿真器/设备和本地机器上给出不同的结果。这里怎么了?似乎通用Windows平台不是那么通用

    Parsing Exif from: C:\Data\SharedData\PhoneTools\AppxLayouts\72787847-7999-4ce9-8ad2-72f637364ff9VS.Debug_x86.smith\Images\IMG_3163.JPG
    Exif_DateTaken: 6/19/2017 11:19:09 AM +03:00
    Exif_FNumber: 2.8
    Exif_ExposureTimeNumerator: 1
    Exif_ExposureTimeDenominator: 250
    Exif_ISOSpeed: 2000
    Exif_Orientation: 1
    _______________________________
    Parsing Exif from: C:\Data\SharedData\PhoneTools\AppxLayouts\72787847-7999-4ce9-8ad2-72f637364ff9VS.Debug_x86.smith\Images\IMG_3163.CR2
    ...results should be here...
    _______________________________