2014-11-08 94 views
-1
Private Function BufferFromImage(imageSource As BitmapImage) As Byte() 
    If Not IsNothing(imageSource) Then 
     Dim encoder As New BmpBitmapEncoder 
     encoder.Frames.Add(BitmapFrame.Create(imageSource)) 

     Using ms As New MemoryStream 
      encoder.Save(ms) 
      Return ms.GetBuffer 
     End Using 
    End If 

    Return Nothing 
End Function 

該功能需要很長的處理速度。 我想要一個更快的過程。我該怎麼辦?WPF中的BitmapImage to Byte []

(不WindowsPhone的二手WPF VB.net)

+0

你要得到的只是原始像素數據,或做它必須是一個編碼緩衝區,就像現在一樣? – Clemens 2014-11-08 08:40:07

回答

-2

要轉換爲字節[]你可以使用一個MemoryStream:

byte[] data; 
JpegBitmapEncoder encoder = new JpegBitmapEncoder(); 
encoder.Frames.Add(BitmapFrame.Create(bitmapImage)); 
using(MemoryStream ms = new MemoryStream()) 
{ 
    encoder.Save(ms); 
    data = ms.ToArray(); 
}