如何将图像从隔离存储加载到Windows Phone上的图像控件?

sel*_*vam 5 isolatedstorage windows-phone-7

我正在使用此代码将图像存储到相机操作完成时的隔离存储中.

void camera_Completed(object sender, PhotoResult e)
{
    BitmapImage objImage = new BitmapImage();
    //objImage.SetSource(e.ChosenPhoto);
    //Own_Image.Source = objImage;
    using (var isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
    {
        fnam = e.OriginalFileName.Substring(93);
        MessageBox.Show(fnam);
        if (isolatedStorage.FileExists(fnam))
            isolatedStorage.DeleteFile(fnam);

        IsolatedStorageFileStream fileStream = isolatedStorage.CreateFile(fnam);
        BitmapImage bitmap = new BitmapImage();
        bitmap.SetSource(e.ChosenPhoto);

        WriteableBitmap wb = new WriteableBitmap(bitmap);
        wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 100, 100);
        MessageBox.Show("File Created");
        fileStream.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想从隔离存储中取出图像并将其显示在我的图像控件中.

可能吗?

ibo*_*kiy 8

是的.您可以使用此功能从IsolatedStorage加载图像:

private static BitmapImage GetImageFromIsolatedStorage(string imageName)
{
    var bimg = new BitmapImage();
    using (var iso = IsolatedStorageFile.GetUserStoreForApplication())
    {
        using (var stream = iso.OpenFile(imageName, FileMode.Open, FileAccess.Read))
        {
            bimg.SetSource(stream);
        }
    }
    return bimg;
}
Run Code Online (Sandbox Code Playgroud)

用法:

ImageControl.Source = GetImageFromIsolatedStorage(fnam);
Run Code Online (Sandbox Code Playgroud)


Ala*_*oud 2

像这样的东西:

public BitmapImage LoadImageFromIsolatedStorage(string path) {
  var isf = IsolatedStorageFile.GetUserStoreForApplication();
  using (var fs = isf.OpenFile(path, System.IO.FileMode.Open)) {
    var image = new BitmapImage();
    image.SetSource(fs);
    return image;
  }
}
Run Code Online (Sandbox Code Playgroud)

在你的代码中

image1.Source = LoadImageFromIsolatedStorage("image.jpg");
Run Code Online (Sandbox Code Playgroud)