我有一个将图像保存到图片库的应用程序。这很好,因为我添加了在应用程序清单中使用图片库的权限。
我现在正在尝试创建一个实时图块,它会显示保存到图片库的这些图像,但我似乎无法正常工作。
我看到可以为app本地文件夹或app安装文件夹创建URI,但我没有找到使用绝对路径或图片库相对路径的示例。 / p>
任何帮助将不胜感激
由于
XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Image);
XmlNodeList wideTileImageAttributes = wideTileXml.GetElementsByTagName("image");
((XmlElement)wideTileImageAttributes[0]).SetAttribute("src", fileAbsPath);
((XmlElement)wideTileImageAttributes[0]).SetAttribute("alt", "");
// Create a new tile notification.
updater.Update(new TileNotification(wideTileXml));
答案 0 :(得分:1)
如http://msdn.microsoft.com/en-us/library/windows/apps/hh465439.aspx所述,磁贴图像引用可以使用ms-appx:///,ms-appdata:///或http [s]:// URIs。那是。
如您所知,您需要将图片库中的图像复制到本地应用数据中。为此使用StorageFile.copyAsync方法。但是,请注意,平铺图像限制为200KB,并且图片库中的大多数图像可能远大于此。这意味着您需要更改流程中的大小。 Simple imaging sample的方案2包含此代码。
或者,您可以先针对图片中的图片调用StorageFile.getScaledImageAsThumbnailAsync,请求适合您正在使用的图块模板的缩略图尺寸。缩略图本身作为随机访问流的StorageItemThumbnail返回,因此您需要将这些字节复制到本地应用程序数据中的文件中。您应该能够再次使用简单成像示例代码,在具有输入流的位置拾取它并从那里开始。
我提到的另一段代码是用JavaScript编写的,但可能很有用:JavaScript App tiles and badges sample的场景11,它是图块的图像编辑器。您可以在这里使用一些代码,但是您必须转换为C#。