【问题标题】:How to retrieve an image from WP7 photo library?如何从 WP7 照片库中检索图像?
【发布时间】:2014-04-08 09:30:13
【问题描述】:

我正在开发一个应用程序,用户可以在其中添加 Windows phone 7 照片库中的照片并将它们分配给特定视图。为此,我将 OriginalFileName 保存在数据库(LINQ to SQL)上。稍后我想恢复照片并将其加载到视图中。你知道我能做什么吗?目前我有这个代码,但不起作用。

当用户选择图片时,我将他的名字保存在变量 fileName 中:

private void photoChooserTask_Completed (object sender, PhotoResult e)
{
    BitmapImage image = new BitmapImage ();
    e.OriginalFileName = fileName;
    image.SetSource (e.ChosenPhoto);
    this.Thumbnail.Source = image;
    this.Thumbnail.Stretch = Stretch.UniformToFill;
}

稍后,当用户想要保存此设置时,我将文件名保存在数据库中。

这是我加载必须包含照片的视图时的代码。

imgSource var = new BitmapImage (new Uri (picture.Url, UriKind.Absolute));
item.LeftImage.Source = imgSource;

其中picture.Url 包含文件名。

有什么想法吗?我在互联网上看到,您可以保留整个图像,但要尽可能做到最好。

【问题讨论】:

标签: windows-phone-7


【解决方案1】:

你应该做的是将PhotoChooserTask返回的图片保存在IsolatedStorage中。 然后,您将能够在需要时加载它。

这里是how to Read and Save Images

【讨论】:

  • 我正在看这篇文章,但是我看到的问题是如果用户选择了100张照片,这意味着100张照片在系统中被复制了?例如,iOS 照片有一个独特的链接,可以在不复制照片的情况下访问它们。
  • 好的,那么另一种方法是使用PhotoChooserTask 让用户选择图片但只保存“文件名”。然后您将不得不浏览MediaLibrary 图片并搜索相应的文件。看看这里看看如何浏览MediaLibrary:dotnet.dzone.com/news/accessing-pictures-media
  • 我按照你说的做了,但是返回 PhotoChooseTask 的名称与文件名不对应,例如,如果我从 PhotoChooserTask 中选择一张照片,它返回的名称是“\\ Applications\\Data\\6956F809-3F84-4E8B-B993-AF7161B075DE\\Data\\PlatformData\\PhotoChooser-cf0ba449-869e-464b-b174-2a9c5105f472.jpg”,但在 MediaLibrary 中名称为“paris.jpg”跨度>
【解决方案2】:

您需要的是不使用 PhotoChooserTask 浏览 MediaLibrary 来获取图片,因为根据您的经验,如果您使用不同的方法,文件名可能不一样。

自定义MediaLibrary浏览界面,可以参考这个codeplex项目:

https://multiphotochooser.codeplex.com/

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多