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);
        }
Другие вопросы по тегам