2

这里有很多图像到隔离存储的问题,但我找不到适合我的情况的好答案 - 所以我们开始吧。

我正在.png从网络上获取图像,并将其保存为BitmapImage-object。完成加载后(在BitmapImage.ImageOpened事件中),我想将其保存到独立存储中。

那么,我怎样才能从这个 BitmapImage (或直接从网络 - 没关系)获取字节或文件流,以便我可以将它写入我的IsolatedStorageFileStream?我在互联网上找不到一篇关于它的帖子,它适用于BitmapImage.StreamSource带有 .png 图像的 WP7(因此不可用)。任何帮助将不胜感激。

4

1 回答 1

1

我不认为你可以开箱即用,但是有一个 codeplex/nuget 项目可以让你以 png 格式保存。

假设您安装了来自 codeplex 的图像工具(通过 nuget!)。

_bi = new BitmapImage(new Uri("http://blog.webnames.ca/images/Godzilla.png", UriKind.Absolute));
_bi.ImageOpened += ImageOpened;
...

private void ImageOpened(object sender, RoutedEventArgs e)
{
    var isf = IsolatedStorageFile.GetUserStoreForApplication();

    using (var writer = new StreamWriter(new IsolatedStorageFileStream("godzilla.png", FileMode.Create, FileAccess.Write, isf)))
    {
        var encoder = new PngEncoder();
        var wb = new WriteableBitmap(_bi);
        encoder.Encode(wb.ToImage(), writer.BaseStream);
    }
}

John Pappa 有一篇关于这项技术的优秀博客文章。将快照保存为 PNG

于 2012-04-28T02:50:39.337 回答