2

Я использую WriteableBitmap.Render для преобразования элемента управления InkPresenter в массив байтов и изображение.Windows Phone - 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.

+0

bitmap.Invalidate(); снова используйте этот оператор, а затем обновите, если он работает. – loop

ответ

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

Вот и все! Какая глупая ошибка ... Спасибо! –

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