Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# library to take screenshots?

Is there a good library I can use in c# to take a screenshot/snapshot?

One where I can drag and drop a region of my screen, to take a screenshot/snapshot of it?

like image 941
001 Avatar asked Sep 16 '10 03:09

001


1 Answers

I'm not aware of any libraries that allow you to visually select a region on your screen, but a screenshot of your whole screen can be taken using the Graphics.CopyFromScreen method as follows:

var bounds = Screen.PrimaryScreen.Bounds;
using (var bmp = new Bitmap(bounds.Width,
                            bounds.Height,
                            PixelFormat.Format32bppArgb))
using (var gfx = Graphics.FromImage(bmp))
{
    gfx.CopyFromScreen(bounds.X,
                       bounds.Y,
                       0,
                       0,
                       bounds.Size,
                       CopyPixelOperation.SourceCopy);
    bmp.Save("shot.png");
}
like image 94
Nathan Baulch Avatar answered Sep 25 '22 01:09

Nathan Baulch