C# UWP:ImageProperties在本地计算机和仿真器上的奇怪行为
我正试图从JPG和CR2文件中获取Exif信息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"));
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...
_______________________________