Пожалуйста, смотрите этот пример из CodeProject: Metro Style Lightweight Image Processing
Приведенный выше пример содержит эти графические эффекты.
- Отрицательный
- Светофильтр
- Emboss
- SunLight
- Черный & Белый
- Яркость
- Oilpaint
- Оттенок
Пожалуйста, обратите внимание выше примера, как представляется, реализован на любую версию для разработчиков или предварительного релизом Windows 8. Таким образом, вы получите сообщение об ошибке, как этого
«Windows.UI.Xaml.Media.Imaging.WriteableBitmap» не содержит конструктор, который принимает аргументы 1
Таким образом, вы должны создать экземпляр WriteableBitmap
пропускание высоты пиксела и ширину пикселя изображения. Я отредактировал образец, и он работает для меня. Вы должны изменить wb = new WriteableBitmap(bs);
к wb = await GetWB();
StorageFile originalImageFile;
WriteableBitmap cropBmp;
public async Task<WriteableBitmap> GetWB()
{
if (originalImageFile != null)
{
//originalImageFile is the image either loaded from file or captured image.
using (IRandomAccessStream stream = await originalImageFile.OpenReadAsync())
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(stream);
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
byte[] pixels = await GetPixelData(decoder, Convert.ToUInt32(bmp.PixelWidth), Convert.ToUInt32(bmp.PixelHeight));
cropBmp = new WriteableBitmap(bmp.PixelWidth, bmp.PixelHeight);
Stream pixStream = cropBmp.PixelBuffer.AsStream();
pixStream.Write(pixels, 0, (int)(bmp.PixelWidth * bmp.PixelHeight * 4));
}
}
return cropBmp;
}
Позвольте мне знать, если вы столкнулись с какой-либо проблемы.