Login or Sign up Help | Site Map
Connecting Tech Pros Worldwide

Capture Screen (The Express Way in 5 Lines)

Written by Atran, June 21st, 2007
Hello Everyone.
In this article: You will know to capture the screen in 2 ways:
1)- Capture full screen.
2)- Capture region.

Let's Begin:
First make a new Windows Application project.
And make sure your program uses these namespaces:
Code: ( text )
  1. using System;
  2. using System.Drawing;
  3. using System.Drawing.Imaging;
  4. using System.Windows.Forms;


Now, we will begin writing the code:
1)- Create a new bitmap object.
Code: ( text )
  1. //Bitmap screenBitmap = new Bitmap(int width, int height, PixelFormat);
  2. Bitmap screenBitmap = new Bitmap(1024, 768, PixelFormat.Format32bppArgb);


2)- Create a new rectangle object.
Code: ( text )
  1. //screenRegion will grab the size of your current screen.
  2. Rectangle screenRegion = Screen.AllScreens[0].Bounds;


3)- Create a new graphics object.
Code: ( text )
  1. Graphics screenGraphics = Graphics.FromImage(screenBitmap);


4)- Copy the image from the screen.
Code: ( text )
  1. //screenGraphics will copy the image from the screen.
  2. screenGraphics.CopyFromScreen(screenRegion.Left, screenRegion.Top, 0, 0, screenRegion.Size);


5)- Save the image:
Code: ( text )
  1. screenBitmap.Save(@"C:\Screen.jpg", ImageFormat.Jpeg);


Here is the code:
Code: ( text )
  1. Bitmap screenBitmap = new Bitmap(1024, 768, PixelFormat.Format32bppArgb);
  2. Rectangle screenRegion = Screen.AllScreens[0].Bounds;
  3.  
  4. // It will copy the current screep image to the bitmap image.
  5. Graphics screenGraphics = Graphics.FromImage(screenBitmap);
  6. screenGraphics.CopyFromScreen(screenRegion.Left, screenRegion.Top, 0, 0, screenRegion.Size);
  7.  
  8. screenBitmap.Save(@"c:\test.jpg", ImageFormat.Jpeg);



You can also capture a part of the screen (region):
Code: ( text )
  1. /* The Code was:
  2.    screenGraphics.CopyFromScreen(screenRegion.Left, screenRegion.Top, 0, 0, screenRegion.Size);
  3. */
  4.  
  5. //See the difference.
  6.  
  7. //screenGraphics.CopyFromScreen(intSourceX, intSourceY......);
  8. screenGraphics.CopyFromScreen(200, 300, 0, 0, screenRegion.Size);


Hope this help you.

4 Comments Posted ( Post your comment )
Vidhura / July 5th, 2007 10:00 AM
Hey Atran

Thanks!

Its nice stuff with good and simple explanation
Atran / July 5th, 2007 10:22 PM
Quote:
Originally Posted by Vidhura
Hey Atran

Thanks!

Its nice stuff with good and simple explanation


You're welcome, enjoy.......
Clanguage / July 27th, 2007 08:25 PM
Great tip
this is something that I can use daily with a few modifications.
I do not use C# though so I thought that you would not mind if I posted the VB code
Code: ( text )
  1. Imports System
  2. Imports System.drawing
  3. Imports System.Drawing.Imaging
  4. Imports System.Windows.Forms
  5.         Dim screenBitmap As New Bitmap(1024, 768, PixelFormat.Format32bppArgb)
  6.         Dim screenRegion As Rectangle = Screen.AllScreens(0).Bounds
  7.  
  8.         ' It will copy the current screep image to the bitmap image.
  9.         Dim screenGraphics As Graphics = Graphics.FromImage(screenBitmap)
  10.         screenGraphics.CopyFromScreen(screenRegion.Left, screenRegion.Top, 0, 0, screenRegion.Size)
  11.  
  12.         screenBitmap.Save("c:\test.jpg", ImageFormat.Jpeg)
PKV / July 31st, 2007 12:25 PM
this was really good one!!
Thanx

Stats:
Comments: 4