Windows Phone - WriteableBitmap.Render не работает с InkPresenter
Я использую WriteableBitmap.Render для преобразования элемента управления InkPresenter в байтовый массив и изображение.
Это мой код:
var bitmap = new WriteableBitmap(element, null);
bitmap.Render(element, null);
bitmap.Invalidate();
BitmapImage img;
using (var ms = new MemoryStream())
{
bitmap.SaveJpeg(ms, bitmap.PixelWidth, bitmap.PixelHeight, 0, 85);
// byte[] bytes = ms.ToArray();
img = new BitmapImage();
img.SetSource(ms);
}
Если я сохраню результат (байтовый массив или изображение) в IsoladtedStorage, изображение будет иметь правильный размер, но будет только черным.
Я понятия не имею, почему это не работает, потому что я уже использовал этот метод с элементом управления Map.
1 ответ
Решение
using (var stream = new MemoryStream())
{
WriteableBitmap dd = new WriteableBitmap(ink, null);
dd.SaveJpeg(stream, dd.PixelWidth, dd.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
var ml = new MediaLibrary();
ink.Background = new SolidColorBrush(Colors.White);
ml.SavePicture(string.Format("Images\\{0}.jpg", Guid.NewGuid()), stream);
ink.Background = new SolidColorBrush(Colors.Transparent);
}