C#: how to take a screenshot of a portion of screen

后端 未结 4 902
不思量自难忘°
不思量自难忘° 2020-12-01 09:12

like

TakeScreenshot(new Rectangle(0,0,100,100), \"output.jpg\");
相关标签:
4条回答
  • 2020-12-01 09:52

    Use the following:

    Rectangle rect = new Rectangle(0, 0, 100, 100);
    Bitmap bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);
    Graphics g = Graphics.FromImage(bmp);
    g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy);
    bmp.Save(fileName, ImageFormat.Jpeg);
    
    0 讨论(0)
  • 2020-12-01 09:56

    Here is the code to capture the screen. Change the values to the size you need.

     Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);  
    
     Graphics graphics = Graphics.FromImage(printscreen as Image);  
    
     graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);  
    
     printscreen.Save(@"C:\printscreen.jpg", ImageFormat.Jpeg);
    

    Or make method which will return you captured image like this :

    Image CaptureScreen(int sourceX, int sourceY, int destX, int destY, 
                Size regionSize)
    {
        Bitmap bmp = new Bitmap(regionSize.Width, regionSize.Height);
        Graphics g = Graphics.FromImage(bmp);
        g.CopyFromScreen(sourceX, sourceY, destX, destY, regionSize);
        return bmp;
    }
     ......
     // call 
     Image image = CaptureScreen(sourceX, sourceY,  destX,  destY, regionSize);
     image.Save(@"C:\Somewhere\screen.jpg);
    
    0 讨论(0)
  • 2020-12-01 10:01

    Use the Graphics.CopyFromScreen method. Google turns up this tutorial.

    0 讨论(0)
  • 2020-12-01 10:04

    Have you checked the Graphics.CopyFromScreen method?

    0 讨论(0)
提交回复
热议问题