Как всегда, выложу исходник готовой функции и описание как ей пользоваться.
Функция, которая делает нам скрин и возвращает результат в виде изображения (экземпляр класса Bitmap).
Пример использования функции:
Функция, которая делает нам скрин и возвращает результат в виде изображения (экземпляр класса Bitmap).
private Bitmap TakeScreenShot(Screen currentScreen)
{
Bitmap bmpScreenShot = new Bitmap(currentScreen.Bounds.Width,
currentScreen.Bounds.Height,
System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics gScreenShot = Graphics.FromImage(bmpScreenShot);
gScreenShot.CopyFromScreen(currentScreen.Bounds.X,
currentScreen.Bounds.Y,
0, 0,
currentScreen.Bounds.Size,
CopyPixelOperation.SourceCopy);
return bmpScreenShot;
}
Пример использования функции:
private Bitmap bmp;
private void toolStripButton1_Click(object sender, EventArgs e)
{
//это действие задаёт параметр расположения
//изображения в pictureBox1
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
//Делаем снимок экрана (изображение в памяти)
Image pr = TakeScreenShot(Screen.PrimaryScreen);
//Создание экземпляра класса Bitmap, в котом
//будет короткое время храниться наше изображение
bmp = new Bitmap(pr);
//Впихиваем изображение в pictureBox1
pictureBox1.Image = bmp;
}
Также выложу в качестве примера исходник, который ещё и умеет сохранять сделанный скрин:
ScreenShot.rar 53.3 KB
2 коммент.:
Хороший пример
private void button2_Click(object sender, EventArgs e)
{
//это действие задаёт параметр расположения
//изображения в pictureBox1
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
//Делаем снимок экрана (изображение в памяти)
//Создание экземпляра класса Bitmap, в котом
//будет короткое время храниться наше изображение
//Впихиваем изображение в pictureBox1
pictureBox1.Image = TakeScreenShot(Screen.PrimaryScreen);
}
Можно скоратить метод, не создавая лишних экземпляров класса, что с экономит время выполнения работы программы и оперативную память вашей машины.
Отправить комментарий