将StorageFile转换为WriteableBitmap WP8.1 Silverlight

时间:2015-02-26 12:08:03

标签: c# silverlight windows-phone-8.1

我正在开发这个应用程序,我可以从图片库中获取所有图片作为StorageFile数据类型。现在我想将其更改为writeablebitmap,应用草图过滤器并在图像控件中显示。有人可以帮助我将数据类型从StorageFile更改为writeablebitmap吗?

这是我的代码:

StorageFolderpicturesFolder = KnownFolders.PicturesLibrary;

IReadOnlyList<IStorageFile> file = await picturesFolder.GetFilesAsync(CommonFileQuery.OrderByDate);

if(file.Count > 0)

 {

foreach(StorageFile f in file)

 { 

// the code for changing the data type will go here

}

2 个答案:

答案 0 :(得分:1)

此代码适用于我。

if (file.Count > 0)
{          
    foreach (StorageFile f in file)
    {
        ImageProperties properties = await f.Properties.GetImagePropertiesAsync();
        WriteableBitmap bmp = new WriteableBitmap((int)properties.Width, (int)properties.Height);
        bmp.SetSource((await f.OpenReadAsync()).AsStream());

        // Ready to go with bmp
    }
}

答案 1 :(得分:0)

试试这个,它应该有效:

IReadOnlyList<IStorageFile> files = await picturesFolder.GetFilesAsync(CommonFileQuery.OrderByDate);

if(files.Count > 0)
{
    var images = new List<WriteableBitmap>();
    foreach(var f in files)
    { 
         var bitmap = new WriteableBitmap(500, 500);
         using (var stream = await f.OpenAsync(FileAccessMode.ReadWrite))
         {
             bitmap.SetSource(stream);
         }
         images.Add(bitmap);
    }
}