将awesomium屏幕截图转换为Stream

时间:2011-08-07 13:53:40

标签: .net awesomium

以下是我制作awesomium截图的方法:

webView2.Render().SaveToPng("filePath");

问题是我现在不需要将字节保存到文件中,而是将它们保存在内存中。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

文档指出Render() returns an instance of RenderBuffer具有名为Buffer的属性,它返回原始像素数据(作为IntPtr)。 如果仍需要字节数组,可以使用Marshal.Copy将数据复制到字节数组中。这样,您就可以在不需要临时文件的情况下完成此操作。

答案 1 :(得分:2)

API似乎没有提供带流的重载,但您始终可以保存到临时文件并将文件加载到MemoryStream

string fileName = Path.GetTempFileName();
webView2.Render().SaveToPng(fileName);
byte[] bytes = File.ReadAllBytes(fileName);
File.Delete(fileName);
MemoryStream ms = new MemoryStream(bytes);
相关问题