工作所需,需要截图软件跑出来的界面上的图表。但是窗口本身是可以缩放的,图表也是做的可以跟着窗体大小一起缩放。所以就写了一个函数,用于截图图表容器内的图像。
函数源码放在了最后,看完使用方法后复制粘贴即可使用。
一、函数输入
输入有两个,参数一:需要截图的容器控件,参数二:保存截图的绝对路径路径
<param name="control">控件名</param>
<param name="addrName">保存图片地址(绝对路径)</param>
二、函数输出
函数无反馈值,但会在指定路径下生成bmp格式的截图文件
三、使用示例
1、需要截图的范围是tableLayoutPanel1容器控件中的四个图表,放置到"C:\\Users\\administrator\\Documents\\123__s.bmp"路径下
2、将参数放入,调用函数
//CaptureControl(tableLayoutPanel1, "C:\\Users\\administrator\\Documents\\123__s.bmp");CaptureControl(tableLayoutPanel1, picPath);
3、查看结果
函数源码如下:
/// <summary>/// 截图指定控件内图像/// </summary>/// <param name="control">控件名</param>/// <param name="addrName">保存图片地址(绝对路径)</param>public void CaptureControl(Control control, string addrName){// 获取控件的位置和尺寸Rectangle bounds = control.Bounds;// 创建一个位图对象Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height);// 将控件绘制到位图上control.DrawToBitmap(bitmap, new Rectangle(0, 0, bounds.Width, bounds.Height));//按指定名称存储到路径下bitmap.Save(addrName, System.Drawing.Imaging.ImageFormat.Bmp);}