可能重复:
WPF Image to byte[]
Relative to this 我有一个通过从webcam捕获图像获得的BitmapSource图像。如何将其转换为C#中的byte []
答案 0 :(得分:13)
我得到了解决方案
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
//encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
encoder.QualityLevel = 100;
// byte[] bit = new byte[0];
using (MemoryStream stream = new MemoryStream())
{
encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
encoder.Save(stream);
byte[] bit = stream.ToArray();
stream.Close();
}
答案 1 :(得分:2)
您可以使用BitmapSource.CopyPixels方法将原始数据复制到字节数组中。 stride参数是每个图像行中的字节数。 100像素宽的RGBA图像将具有100 * 4 = 400字节的步幅。
检查此SO discussion以获取stride参数及其对不同图像类型的行为