usingSystem.Drawing;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1
{classScreenCapture
{private Bitmap _screenshot = null;///
///截取全屏///
/// 返回值
publicBitmap CaptureScreen()
{return Capture(Rectangle.Empty, false);
}///
///截取全屏并保存///
/// 文件路径
///
public Bitmap CaptureScreen(stringfileName)
{
Bitmap screenshot= Capture(Rectangle.Empty, false);
saveImage(fileName, screenshot);returnscreenshot;
}///
///截屏到剪切板///
public voidCopyToClipboard()
{if (this._screenshot != null)
Clipboard.SetImage(this._screenshot);else if (this._screenshot == null)
MessageBox.Show("No screenshot found. Please take a screenshot first.", "Copy to Clipboard");
}///
///区域截屏///
/// 区域范围
/// 返回值
publicBitmap CaptureRectangle(Rectangle rect)
{return Capture(rect, true);
}///
///区域截屏///
/// 区域范围
/// 文件路径
/// 返回值
public Bitmap CaptureRectangle(Rectangle rect, stringfileName)
{
Bitmap screenshot= Capture(rect, true);
saveImage(fileName, screenshot);returnscreenshot;
}private Bitmap Capture(Rectangle rect, boolisRect)
{int screenWidth =Screen.PrimaryScreen.Bounds.Width;int screenHeight =Screen.PrimaryScreen.Bounds.Height;
Bitmap screenshot= null;if(!isRect)
screenshot= newBitmap(screenWidth, screenHeight);else if(isRect)
screenshot= newBitmap(rect.Width, rect.Height);
Graphics g=Graphics.FromImage(screenshot);if (!isRect)
{
g.CopyFromScreen(Point.Empty, Point.Empty, screenshot.Size);
}else if(isRect)
{
g.CopyFromScreen(newPoint(rect.X, rect.Y), Point.Empty, rect.Size);
}this._screenshot =screenshot;returnscreenshot;
}private void saveImage(stringfileName, Bitmap screenshot)
{string ext =System.IO.Path.GetExtension(fileName);;
ext=ext.ToLower();if (ext == ".jpg" || ext == ".jpeg")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);else if(ext == ".gif")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif);else if(ext == ".png")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);else if (ext == ".bmp")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);else if (ext == ".tiff")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Tiff);
}
}
}