/// <summary>
/// 图片保存
/// </summary>
private void SavePicture()
{
this.TopMost = true; // 置顶存图
System.IO.DriveInfo[] allDrives = System.IO.DriveInfo.GetDrives();
System.IO.DriveInfo d;
double MyAvilableSiz = 0;
for (int i = 0; i <= allDrives.Length - 1; i++)
{
d = allDrives[1];
if (d.IsReady == true)
MyAvilableSiz = ((d.AvailableFreeSpace / 1024) / 1024) / 1024;
}
if (MyAvilableSiz < 0.5)
{
MessageBox.Show("D盘可用空间过小,存储失败!");
return;
}
// 确定和所有文件夹和文件
string timeFolder; // 文件夹的实际
string timeFile; // 文件时间
timeFolder = DateTime.Now.Month + "-" + DateTime.Now.Day; // 数据格式:月-日 7-10
string saveImage3 = @"D:\BF\image\" + timeFolder; // 图片保存位置 D:\BF\image\月-日
//当前的时间
timeFile = DateTime.Now.ToString("yyyy-MM-dd"); //保存图片的名称 年-月-日.bmp
// timeFile = "2022-02-16";
if (!System.IO.Directory.Exists(saveImage3)) //判断saveImage3路径是否在磁盘上
{
System.IO.Directory.CreateDirectory(saveImage3); //不在磁盘上,创建一个saveImage3的路径
}
string pictureSavePosition; // 保存的位置
pictureSavePosition = saveImage3 + @"\" + timeFile + ".bmp";
// 获得表单的大小
int scrnWidth = this.Width;
int scrnHeight = this.Height;
// 创建位图对象
Bitmap bmScrn = new Bitmap(scrnWidth, scrnHeight); //实例化一个和窗体一样大的bitmap
// 将屏幕界面复制到Bitmap物件中
Graphics g = Graphics.FromImage(bmScrn);
// (源矩形x,源矩形y,目标矩形x,目标矩形y,面积大小)
//g.CopyFromScreen(起点的屏幕坐标X,起点的屏幕坐标Y,0,0,new Size(窗体的宽度,窗体的高度));
g.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, new Size(scrnWidth, scrnHeight)); // 抓取当前Form的画面
g.Dispose();
// 保存窗体
bmScrn.Save(pictureSavePosition);
bmScrn.Dispose();
this.TopMost = false; // 取消置顶
}
将winform的窗体Form保存为.bnp图片
最新推荐文章于 2023-05-14 20:31:01 发布
这段代码是一个用于保存屏幕截图的私有方法。首先检查D盘可用空间,如果不足0.5GB则显示警告并终止操作。否则,它将创建一个以当前日期命名的文件夹,保存截图到该文件夹内,同时确保目标文件夹存在。最后,从屏幕抓取并保存位图,然后取消窗口置顶。
摘要由CSDN通过智能技术生成