以下是我制作awesomium截图的方法:
webView2.Render().SaveToPng("filePath");
问题是我现在不需要将字节保存到文件中,而是将它们保存在内存中。我怎样才能做到这一点?
答案 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);