C#:捕获多个图像并保存在同一文件夹中?

Sha*_* KG 1 c# screen-capture savefiledialog winforms

目前我的代码可以捕获图像并保存在定义的位置,但是如果我在第二次尝试相同的图像被覆盖,那么如果该文件夹中存在相同的文件名,我们必须动态更改文件名。我怎样才能做到这一点 ?

目前的屏幕捕获代码是:

private void CaptureMyScreen()
{
    try
    {
        //Creating a new Bitmap object
        Bitmap captureBitmap = new Bitmap(1024, 768, PixelFormat.Format32bppArgb);

        //Creating a Rectangle object which will capture our Current Screen
        Rectangle captureRectangle = Screen.AllScreens[0].Bounds;

        //Creating a New Graphics Object
        Graphics captureGraphics = Graphics.FromImage(captureBitmap);

        //Copying Image from The Screen
        captureGraphics.CopyFromScreen(captureRectangle.Left, captureRectangle.Top, 0, 0, captureRectangle.Size);

        //Saving the Image File (I am here Saving it in My D drive).
        captureBitmap.Save(@"D:\Capture.jpg", ImageFormat.Jpeg);

        //Displaying the Successfull Result

        MessageBox.Show("Screen Captured");
    }

    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

Nin*_*ino 5

您可以使用 GUID 获取每个捕获文件的唯一名称。就像是

string guid = Guid.NewGuid().ToString();
captureBitmap.Save(@"D:\Capture-" + guid + ".jpg",ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

或者,为此使用当前日期和时间,如下所示:

string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss");
captureBitmap.Save(@"D:\Capture-" + timestamp + ".jpg",ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)