我一直在使用一些代码从 WPFMediaKit 的 VideoCaptureElement 捕获图像。效果很好!
bmp.Render(videoElement);
BitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
string now = DateTime.Now.Year + "" + DateTime.Now.Month + "" + DateTime.Now.Day + "" + DateTime.Now.Hour + "" + DateTime.Now.Minute + "" + DateTime.Now.Second;
string filename = now + "pic.jpg";
FileStream fstream = new FileStream(filename, FileMode.Open);
encoder.Save(fstream);
fstream.Close();
我面临的问题是我现在需要获取 byte[] 数据而不是保存文件。目前我正在使用打开的文件对话框和文件流执行此操作:
if (File.Exists(FileLocation))
{
//Retreave image from file and binary it to Object image
using (FileStream stream = File.Open(FileLocation, FileMode.Open))
{
BinaryReader br = new BinaryReader(stream);
byte[] data = br.ReadBytes(maxImageSize);
image = new Image(dlg.SafeFileName, data, fileSize);
}
}
我想做的是捕获而不是保存文件,我想将它作为 byte[] 类型。有没有办法将 RenderTargetBitmap 或 BitmapEncoder 转换为 byre[] 数组?或者我可能正在考虑将它们转换为内存流,以便二进制阅读器可以使用它?
谢谢!