C# 有没有办法使用AwesomiumSharp在内存中创建System.Drawing.Image?
背景是,我正在使用XNA,我将一个物体渲染成一个图像,然后用它制作一个纹理2D 通过文件向图像呈现Awesomium的代码如下所示:C# 有没有办法使用AwesomiumSharp在内存中创建System.Drawing.Image?,c#,.net,xna,awesomium,C#,.net,Xna,Awesomium,背景是,我正在使用XNA,我将一个物体渲染成一个图像,然后用它制作一个纹理2D 通过文件向图像呈现Awesomium的代码如下所示: webView.Render().SaveToPNG("awesomium.png", true); var image = Image.FromFile("awesomium.png", true); 这很好,但速度很慢(你可以想象得到) 有没有一种方法可以使用Awesomium渲染到System.Drawing.Image而不写入文件系统?最后我在中找到了答
webView.Render().SaveToPNG("awesomium.png", true);
var image = Image.FromFile("awesomium.png", true);
这很好,但速度很慢(你可以想象得到)
有没有一种方法可以使用Awesomium渲染到System.Drawing.Image而不写入文件系统?最后我在中找到了答案。我猜官方包装并不总是最完整的:/
public static class Rbex
{
public static Bitmap ToBitmap(this RenderBuffer buffer)
{
const int depth = 4;
const PixelFormat pf = PixelFormat.Format32bppArgb;
// Create bitmap
Bitmap bitmap = new Bitmap(buffer.GetWidth(), buffer.GetHeight(), pf);
BitmapData data = bitmap.LockBits(new Rectangle(0,0, buffer.GetWidth(), buffer.GetHeight()), ImageLockMode.WriteOnly, bitmap.PixelFormat);
buffer.CopyTo(data.Scan0, buffer.GetWidth() * depth, depth, false);
bitmap.UnlockBits(data);
return bitmap;
}
}
webView.Render()
返回什么?@DarkSlipstream,它返回RenderBuffer。该类的文档如下所示: