2015-02-26 2 views
1

Я разрабатываю это приложение, где я могу получить все изображения из библиотеки изображений в виде типа данных StorageFile. теперь я хочу изменить его на writeablebitmap, применить фильтр эскиза и показать в управлении изображением. может кто-то, пожалуйста, помогите мне в изменении типа данных из StorageFile на writeablebitmap?Convert StorageFile to WriteableBitmap WP8.1 Silverlight

вот мой код:

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 

} 

ответ

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 
    } 
} 
+0

же ошибка в последней строке – Saira

+0

ок, я получил это, вы используете Silverlight, наше решение для WinRT, я попытаюсь еще один способом –

+0

я только что отредактировал мой ответ, попробуйте сейчас –

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); 
    } 
} 
+0

он дает эту ошибку при bitmap.SetSource (поток); «Наилучшее перегруженное соответствие метода для« System.Windows.Media.Imaging.BitmapSource.SetSource (System.IO.Stream) »имеет некоторые недопустимые аргументы» – Saira

+0

Потому что он устанавливает размер жесткого кодированного растрового изображения. Попробуйте мое решение. –

Смежные вопросы