0

awesomiumのスクリーンショットを作成する方法は次のとおりです。

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

問題は、バイトをファイルに保存する必要はなく、メモリ内に取得する必要があることです。どうすればそれを達成できますか?

4

2 に答える 2

4

ドキュメントには、Render() が RenderBuffer のインスタンスを返し、これにはBufferというプロパティがあり、生のピクセル データを ( IntPtrとして) 返すと記載されています。それでもバイト配列が必要な場合は、Marshal.Copyを使用してデータをバイト配列にコピーできます。このようにして、一時ファイルを必要とせずにそれを行うことができます。

于 2011-08-07T14:16:08.697 に答える
2

API は、ストリームを受け取るオーバーロードを提供していないようですが、いつでも一時ファイルに保存して、ファイルを次のようにロードできますMemoryStream

string fileName = Path.GetTempFileName();
webView2.Render().SaveToPng(fileName);
byte[] bytes = File.ReadAllBytes(fileName);
File.Delete(fileName);
MemoryStream ms = new MemoryStream(bytes);
于 2011-08-07T14:16:26.127 に答える