2015-03-30 2 views
1

Я нашел следующий код в Интернете для преобразования WriteableBitmap в байтовый массив, но этот код не работает с Silverlight. Может кто-нибудь, пожалуйста, скажите мне, какие изменения необходимы, чтобы заставить его работать с Silverlight.Преобразование записиableBitmap в байтовый массив - Windows phone 8.1 - Silverlight

byte[] ConvertBitmapToByteArray(WriteableBitmap bitmap) 
{ 
    WriteableBitmap bmp = bitmap; 

    using (Stream stream = bmp.PixelBuffer.AsStream()) 
    { 
     MemoryStream memoryStream = new MemoryStream(); 
     stream.CopyTo(memoryStream); 
     return memoryStream.ToArray(); 
    } 
} 

Это дает следующее сообщение об ошибке:

«System.Windows.Media.Imaging.WriteableBitmap» не содержит определение для «PixelBuffer» и не метод расширения «PixelBuffer» принимая первый аргумент типа «System.Windows.Media.Imaging.WriteableBitmap» может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)

+0

Я не уверен, но, возможно, [таким образом] (http://stackoverflow.com/a/24047192/2681948) будет работать. – Romasz

ответ

3

Я использовал этот метод в другом проекте. Этот снимок принадлежит sara silva.

public static byte[] ConvertToByteArray(WriteableBitmap writeableBitmap) 
{ 
    using (var ms = new MemoryStream()) 
    { 
     writeableBitmap.SaveJpeg(ms, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 100); 
     return ms.ToArray(); 
    } 
} 

msdn documentation

+0

это работает: D Спасибо – Saira

0

попробовать это:

public static byte[] ConvertToByteArray(WriteableBitmap writeableBitmap) 
     { 
      using (MemoryStream ms = new MemoryStream()) 
      { 
       writeableBitmap.SaveJpeg(ms, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 100); 

       return ms.ToArray(); 
      } 
     } 
Смежные вопросы