当我尝试使用File not found exception
属性加载图像文件时,我收到KnownFolders.CameraRoll
。该图像位于我的Windows Phone 8的CameraRoll中。我还在我的应用程序中启用了以下功能
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_MEDIALIB_AUDIO" />
<Capability Name="ID_CAP_MEDIALIB_PLAYBACK" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
<Capability Name="ID_CAP_MEDIALIB_PHOTO" />
<Capability Name="ID_CAP_ISV_CAMERA" />
这是我获取图片的代码。
private async void cameraRoll_btn_Click(object sender, RoutedEventArgs
e) {
try {
StorageFile file = await Windows.Storage.KnownFolders.CameraRoll.GetFileAsync("WP_20130607_003.jpg");
var mem = await file.OpenAsync(FileAccessMode.Read);
BitmapImage bitImage = new BitmapImage();
bitImage.SetSource(mem.AsStream());
ImageView.Source = bitImage;
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
图像WP_20130607_003.jpg
也出现在相机胶卷中,我正在将应用程序部署到设备上。它会在GetFileAsync
行引发异常。任何预示都可以给我一些暗示,我在这里做错了吗?
由于
答案 0 :(得分:0)
来自MSDN:
Windows Phone 8:此API不能直接使用 你的代码。
您可以使用PhotoChooserTask让用户选择照片。或者,您可以使用MediaLibrary.Pictures以编程方式访问图片。例如
MediaLibrary ml = new MediaLibrary();
var picture = ml.Pictures.Where(x => x.Name.Equals("WP_20130607_003.jpg")).FirstOrDefault();
if(picture != null)
{
//get the image stream
var picStream = picture.GetImage();
//...
}