Screenshot code for the specified area of the screen based on the C implementation


Previously seen in other places one by calling system API screenshots implementation examples, from the heart, I don’t like this happens in C # code, now what all speak “harmony”, I think this kind of practice is the “harmony” spoiled our code, ha ha, joke, sometimes, not through the system API really hard to do.

Here’s how to get a screenshot using pure C#. The code is as follows:

// Capture a full screen image
        private void btnFullScreen_Click(object sender, EventArgs e)
        {
            // Create an image and save the captured image
            Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            Graphics imgGraphics = Graphics.FromImage(image);
            // Set the screenshot area   KeLeYi
            imgGraphics.CopyFromScreen(0, 0, 0, 0, new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height));
            // save
            SaveImage(image);
        }
// Save image file
        private void SaveImage(Image image)
        {
            if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                string fileName = saveFileDialog.FileName;
                string extension = Path.GetExtension(fileName);
                if (extension == ".jpg")
                {
                    image.Save(fileName, ImageFormat.Jpeg);
                }
                else
                {
                    image.Save(fileName, ImageFormat.Bmp);
                }
            }
        }

This code is simple enough to set the location and size of the screenshot area, but it only works in a.net 2.0 environment. I am in the next step to improve the implementation of drag drag screenshot technology, similar to QQ screenshot method, is tackling the key, if you complete the release of the source code.