工作所需,需要截图软件跑出来的界面上的图表。但是窗口本身是可以缩放的,图表也是做的可以跟着窗体大小一起缩放。所以就写了一个函数,用于截图图表容器内的图像。
函数源码放在了最后,看完使用方法后复制粘贴即可使用。
一、函数输入
输入有两个,参数一:需要截图的容器控件,参数二:保存截图的绝对路径路径
<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);
}