在c#中保存屏幕截图到特定位置
本文关键字:定位 位置 屏幕截图 保存 | 更新日期: 2023-09-27 18:06:10
现在我有一个按钮,将自动保存我当前窗口的屏幕截图使用位图,并将其保存在指定的文件夹。下面是我使用的代码
public void DrawControl(Control control, Bitmap bitmap)
{
control.DrawToBitmap(bitmap, control.Bounds);
foreach (Control childControl in control.Controls)
{
DrawControl(childControl, bitmap);
}
}
public void SaveBitmap()
{
Bitmap bmp = new Bitmap(this.panel1.Width, this.panel1.Height);
this.panel1.DrawToBitmap(bmp, new Rectangle(0, 0, this.panel1.Width, this.panel1.Height));
foreach (Control control in panel1.Controls)
{
DrawControl(control, bmp);
}
bmp.Save("C:''Users''R***''Desktop''panel.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
现在我想要的是,我将能够指定我想要保存位图的位置。而不是代码中的特定文件夹。这可能吗?
当然!我是这样做的:
private void SaveImage(Bitmap bmp)
{
SaveFileDialog saveDlog = new SaveFileDialog();
saveDlog.InitialDirectory = @"C:'";
saveDlog.FileName = "screenshot.png";
saveDlog.Title = "Save Screenshot";
saveDlog.Filter = "PNG File | *.png";
ImageFormat format = ImageFormat.Png;
if (saveDlog.ShowDialog() == DialogResult.OK)
{
bmp.Save(saveDlog.FileName);
}
}
调用SaveImage(bmp)
而不是bmp.Save()
,您将看到一个标准的保存对话框。您可以决定您想要的默认类型(在本例中使用jpg而不是png),您可以将初始目录更改为您想要的类型。