将winform的窗体Form保存为.bnp图片

这段代码是一个用于保存屏幕截图的私有方法。首先检查D盘可用空间,如果不足0.5GB则显示警告并终止操作。否则,它将创建一个以当前日期命名的文件夹,保存截图到该文件夹内,同时确保目标文件夹存在。最后,从屏幕抓取并保存位图,然后取消窗口置顶。
摘要由CSDN通过智能技术生成
   /// <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;     // 取消置顶
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值