GetThumbnailAsync()在本地存储中花费的时间太长

时间:2015-04-16 10:08:03

标签: c# windows-runtime windows-phone-8.1

我正在创建一个Windows Phone 8.1(RT)应用程序,我在LocalStorage和图片库中都有一些图像,我正在使用GetThumbnailAsync()加载图像。 对于大小为6MB +的PNG图像,PicturesLibrary中的GetThumbnailAsync()需要几毫秒,而在应用程序中复制到LocalStorage时相同的图像大约需要10秒才能获得缩略图。

我也用过

getThumbnailAsync(ThumbnailMode.ListView,100,ThumbnailOptions.ResizeThumbnail)

然而,它需要很长时间,但会以所需的像素大小返回缩略图。任何人都可以指出为什么在LocalStorage的情况下花费这么多时间,以及是否有任何替代方案可以让它快速。

1 个答案:

答案 0 :(得分:3)

系统为图片库中的图像预先缓存缩略图,而对于应用程序的独立存储中的图像则不能这样做。

这里有两种解决方法:

  1. 将图片移至系统可预先生成缩略图的公共位置

  2. 在本地存储中的图像的EXIF数据中嵌入缩略图。然后系统可以快速提取并更快地返回缩略图。目前它必须解码整个6+ MB文件以生成缩略图,其中快速提取只需要弹出更小的缩略图