I am Creating an windows application using c#.I have a button which should capture the image(the entire Desktop screen) and Save it in a folder.Also i need to show the preview of the image.
Graphics.CopyFromScreen Method
sample code:
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
g.Save();
bmp.Save("D:\\file.jpg", ImageFormat.Bmp);
as for show the preview. IMO not that hard to write it on ur own.
There are different ways to perform what you bring here. Using the Screen
class, there are a few simple samples I found on the Internet. Others are using Direct3D.
In short, the idea consists of getting the image of the desktop using the Screen
class or your favorite way, store it into a Bitmap
object and save this bitmap into a file.
As for displaying a preview, once your Bitmap
instance is created, you simply need a PictureBox
and set its Image
property and show your form to the user so he may see the image.
Hope this helps! =)
You will need to do some importing of Interop dlls.
Take a look at the following example shows very well how to capture the screen shot and save to disk.
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10)); GDI32.SelectObject(hdcDest,hBitmap);
GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat);
Cleanup(hBitmap,hdcSrc,hdcDest);
}
The above example taken from the website. All code by Perry Lee
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.