使用Awesomium的AccessViolationException为XNA生成位图

时间:2016-02-26 21:52:53

标签: c# xna monogame system.drawing awesomium

我正在尝试在BackgroundWorker中呈现Awesomium无头浏览器。

然而,当我尝试使用CopyTo复制缓冲区时, 我得到一个AccessViolationException说我正在尝试访问受保护的内存。 这是我第一次使用System.Drawing命名空间。

这是我的代码:

            RenderBuffer b = browser.Render();
            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            System.Drawing.Imaging.BitmapData bmd = bmp.LockBits(new System.Drawing.Rectangle(0, 0,size.Width, size.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat);
            b.CopyTo(bmd.Scan0, bmd.Stride, 4, false, false);
            bmp.UnlockBits(bmd);
            System.IO.MemoryStream dat = new System.IO.MemoryStream(bmp.Width * bmp.Height * 4);
            bmp.Save(dat, System.Drawing.Imaging.ImageFormat.Png);
            page = Texture2D.FromStream(Game.GraphicsDevice, dat);
            bmp.Dispose();

提前致谢!

0 个答案:

没有答案