Эффект размытия не может отобразить изображение в Windows Phone (Lumia Imaging SDK)
Я использовал код, вырезанный из документации Lumia Imaging SDK. У меня есть Fileopenpicker в моем коде и вызывает метод viewActivation. В этом методе я использовал код BlurEffect SDK Lumia Imaging, который вы можете найти здесь. Там нет ошибок, но я не могу получить мое изображение размытым.
Вот мой полный код, который я использовал:
private void Button_Click(object sender, RoutedEventArgs e)
{
ImagePath = string.Empty;
FileOpenPicker filePicker = new FileOpenPicker();
filePicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
filePicker.ViewMode = PickerViewMode.Thumbnail;
// Filter to include a sample subset of file types
filePicker.FileTypeFilter.Clear();
filePicker.FileTypeFilter.Add(".bmp");
filePicker.FileTypeFilter.Add(".png");
filePicker.FileTypeFilter.Add(".jpeg");
filePicker.FileTypeFilter.Add(".jpg");
filePicker.PickSingleFileAndContinue();
view.Activated += viewActivated;
}
private async void viewActivated(CoreApplicationView sender, Windows.ApplicationModel.Activation.IActivatedEventArgs args1)
{
//throw new NotImplementedException();
FileOpenPickerContinuationEventArgs args = args1 as FileOpenPickerContinuationEventArgs;
if (args != null)
{
if (args.Files.Count == 0) return;
view.Activated -= viewActivated;
StorageFile storageFile = args.Files[0];
var stream = await storageFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
var bitmapImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
await bitmapImage.SetSourceAsync(stream);
var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream);
RealImage.Source = bitmapImage;
// A blur effect is initialized with selected image stream as source.
IRandomAccessStream fileStream = await storageFile.OpenAsync(FileAccessMode.Read);
var imageStream = new RandomAccessStreamImageSource(fileStream);
using (var filterEffect = new FilterEffect(imageStream))
{
// Initialize the filter and add the filter to the FilterEffect collection
var filter = new BlurFilter(10);
filterEffect.Filters = new IFilter[] { filter };
// Create a target where the filtered image will be rendered to
var target = new WriteableBitmap(400, 400);
// Create a new renderer which outputs WriteableBitmaps
using (var renderer = new WriteableBitmapRenderer(filterEffect, target))
{
// Render the image with the filter(s)
await renderer.RenderAsync();
// Set the output image to Image control as a source
BlurredImage.Source = target;
}
}
}
}