Tag: drawtobitmap

如何获得控件的屏幕截图? DrawToBitmap不起作用

我有一个通过dll调用从外部绘制的pictureBox。 private void myPictureBox_Paint(object sender, PaintEventArgs e) { dllClass.RefreshEx(LWHANDLE, 0, 0); } 这是有效的,但我现在需要获得该图片框的截图,但它不起作用。 这是我尝试过的: Control ctrlToDraw = myPictureBox; System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ctrlToDraw.Width, ctrlToDraw.Height); ctrlToDraw.DrawToBitmap(bmp, ctrlToDraw.ClientRectangle); 我也试图通过Windows API来实现它,但它产生的结果与上面的代码完全相同:一个空白(非空)图像。 除了截取整个屏幕的屏幕截图外,还有人可以提出一些建议吗?

Web浏览器疯狂

编辑:最初的问题很长,有许多猜测。 我已经把它切回到剩下的奥秘…… 我现在一整天都在苦苦挣扎和猜测,我猜我应该向社区提出我的问题。 它起源于名为Screenshot方法的post生成黑色图像 。 即使用户注销 ,原始海报也希望每隔n秒连续拍摄一次包含WebBrowser的程序截图。 当用户退出时,他不再有屏幕了。 因此,任何读取屏幕的尝试都将失败。 如果使用窗口句柄,则结果为黑框,当使用CopyFromScreen时出现GDI错误exception。 但程序窗口仍然存在,即使用户注销,使用DrawToBitmap正常工作。 以下是条件和剩余问题: 用户不得以任何方式触摸/单击WebBrowser 。 如果他这样做,比如滚动,点击,导航子队列的DrawToBitmap调用会产生一个空框。 虽然WebBrowser保持不变,但在下一个DrawToBitmap调用之前进行Refresh就足够了。 触摸后,需要通过执行webBrowser1.Url = new Uri(URLpath);再次加载URL webBrowser1.Url = new Uri(URLpath); 必须存储导航新URL才能执行此操作。 我在Navigated事件中这样做。 无论如何,如果网页包含 field ,则DrawToBitmap失败(使用空框)。 通过使用Replace(“<input", "<in_put");破坏DocumentText Replace(“<input", "<in_put"); 这可以治愈,但没有进一步的技巧,这将失去CSS表.. 为了测试它Buttons, a Label, a Timer, a Combobox and a WebBrowser on a Form抛出两个Buttons, a Label, a Timer, a Combobox and a […]

DrawToBitmap返回空白图像

我在winform应用程序中创建位图图像时遇到问题。 情况: 我有一个名为“ CanvasControl ”的UserControl ,它接受OnPaint方法作为我的Draw Pad应用程序的canvas。 在这个用户控件中,我有一个函数“ PrintCanvas() ”,它将创建UserControl到PNG文件的屏幕截图。 下面是PrintCanvas()函数: public void PrintCanvas(string filename = “sample.png”) { Graphics g = this.CreateGraphics(); //new bitmap object to save the image Bitmap bmp = new Bitmap(this.Width, this.Height); //Drawing control to the bitmap this.DrawToBitmap(bmp, new Rectangle(0, 0, this.Width, this.Height)); bmp.Save(Application.StartupPath + @”\ExperimentFiles\Experiment1″ + filename, ImageFormat.Png); bmp.Dispose(); } 这个用户控件( […]

WebBrowser.DrawtoBitmap()一致地为少数站点生成空白图像

我一直在我的asp.net页面中使用WebBrowser.DrawtoBitmap()在单独的STA线程中运行,以将网页捕获为图像。 但我发现我一直在为少数网站拍摄空白图像。 我知道这种方法不是“正式”支持的,但如果有人可以为我提供任何理由或解决这些空白图像问题,那就太好了。

DrawToBitmap没有截取所有项目的截图

我目前有这个有用的代码,我在StackOverflow上的其他地方找到了: form.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height)); 我有一个带有几个文本框/下拉菜单和一个大图片框的表单。 然后我在这个大图片框的顶部放置了较小的图片框。 当我查看截图时,它会显示表单,但是由于某些原因,放置在大图片框上的较小图片框不显示?

richTextBox.DrawToBitmap不会绘制包含文本?

如果我有一个richTextBox并在其上运行DrawToBitmap,它不会绘制richTextBox内的任何文本。 Bitmap b = new Bitmap(rtb.Width, rtb.Height); inputControl.DrawToBitmap(b, new Rectangle(0, 0, b.Width, b.Height)); 有没有什么办法解决这一问题?

将WebBrowser.Document转换为位图?

是否可以将WebBrowser.Document绘制到位图? 基本上是获取WebBrowser控件的屏幕截图(注意,这是一个不在表单上但只在代码中的WebBrowser)。 WebBrowser w = new WebBrowser(); w.Document = “Hello world.”; w.Document.DrawToBitmap ??? 谢谢!