2014-11-08 91 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(); 
}