Как сохранить изображение экрана компьютера в файле в C#

Вы можете сохранить изображение экрана компьютера с помощью метода CopyFromScreen объекта Graphics. Следующий метод GetScreenImage использует CopyFromScreen, чтобы захватить изображение экрана.

// Возьмите изображение экрана.
private Bitmap GetScreenImage()
{
    // Создаем растровое изображение для сохранения результата.
    Bitmap bm = new Bitmap(
        Screen.PrimaryScreen.Bounds.Width, 
        Screen.PrimaryScreen.Bounds.Height, 
        PixelFormat.Format24bppRgb);

    // Скопируем изображение в растровое изображение.
    using (Graphics gr = Graphics.FromImage(bm))
    {
        gr.CopyFromScreen(
            Screen.PrimaryScreen.Bounds.X,
            Screen.PrimaryScreen.Bounds.Y,
            0, 0,
            Screen.PrimaryScreen.Bounds.Size,
            CopyPixelOperation.SourceCopy);
    }

    // Вернуть результат.
    return bm;
}

В коде используется Screen.PrimaryScreen.Bounds, чтобы получить размеры экрана (это единственная сложная часть) и делает растровое изображение подходящим. Он создает объект Graphics, связанный с растровым изображением, и использует его метод CopyFromScreen, чтобы скопировать изображение экрана в растровое изображение. Затем метод возвращает растровое изображение.

(Возможно, вам потребуется изменить этот код, если вы используете несколько мониторов. Если вы это сделаете, сообщите мне , как это работает.)

Основная программа относительно проста. Когда вы нажимаете кнопку «Получить экранное изображение» программы, выполняется следующий код.

private void btnGetScreenImage_Click(object sender, EventArgs e)
{
    // Скрыть эту форму.
    this.Hide();

    // Позвольте пользователю выбрать файл для хранения изображения.
    if (sfdScreenImage.ShowDialog() == DialogResult.OK)
    {
        // Получить изображение экрана.
        using (Bitmap bm = GetScreenImage())
        {
            // Сохранение растрового изображения в выбранном файле.
            SaveImage(bm, sfdScreenImage.FileName);
        }
    }

    // Показывать эту форму еще раз.
    this.Show();
}

Источник: http://csharphelper.com/blog/2014/09/save-an-image-of-the-computers-screen-in-a-file-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector