none
C#, Захват экрана RRS feed

  • Вопрос

  • Всем привет!

    Есть программы
    OBS Studio, Nero Video,
    с помощью которых можно 
    создавать видики из происходящего на экране.
    А есть ли возможность на C#
    создать такой захват экрана?

Ответы

  • Если я правильно поняла вашу задачу, то она сводиться к превращению последовательности скриншотов в видео ряд. Вот тут вроде была похожая задача. Не скриншоты, но думаю как сделать скрин не проблема для вас)))
  • Это не захват экрана.
    Это рисовка живой картинки
    и создание видеофайла,
    но меня это устраивает.

    using System.Drawing; using System.Windows.Forms; using Accord.Video.FFMPEG; // Nuget namespace BitmapToAvi { public partial class MainForm : Form { public MainForm() { InitializeComponent(); BitmapToAvi (); } public void BitmapToAvi () { int width = 320, height = 240; VideoFileWriter writer = new VideoFileWriter( ); writer.Open ( "Out.avi", width, height, 25, VideoCodec.MPEG4 ); Bitmap image = new Bitmap( width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb ); for ( int i=1;i<width; i++) for ( int j=1;j<height;j++) image.SetPixel ( i, j, Color.White ); // ??? // Color.White ==> image for ( int i = 0; i < 1000; i++ ) { image.SetPixel ( i % width, i % height,Color.Red ); writer.WriteVideoFrame ( image ); } pictureBox.Image = image; writer.Close(); image.Save ( "Out.png" ); } } }

    7 июля 2022 г. 20:46
  • Здравствуйте,

    Смотрите: Учебник. Потоковая трансляция в реальном времени с помощью Служб мультимедиа Azure и .NET 5.0


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    Модератор

Все ответы

  • Здравствуйте,

    Смотрите: Учебник. Потоковая трансляция в реальном времени с помощью Служб мультимедиа Azure и .NET 5.0


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    Модератор
  • Максим, спасибо!
    Разбираюсь!
  • Если я правильно поняла вашу задачу, то она сводиться к превращению последовательности скриншотов в видео ряд. Вот тут вроде была похожая задача. Не скриншоты, но думаю как сделать скрин не проблема для вас)))
  • Лилия, привет!
    Вы, как всегда, меня выручаете!
    Спасибо, очень полезно!
    Есть и другие варианты.
    Когда определюсь, покажу решение.
    6 июля 2022 г. 20:11
  • Это не захват экрана.
    Это рисовка живой картинки
    и создание видеофайла,
    но меня это устраивает.

    using System.Drawing; using System.Windows.Forms; using Accord.Video.FFMPEG; // Nuget namespace BitmapToAvi { public partial class MainForm : Form { public MainForm() { InitializeComponent(); BitmapToAvi (); } public void BitmapToAvi () { int width = 320, height = 240; VideoFileWriter writer = new VideoFileWriter( ); writer.Open ( "Out.avi", width, height, 25, VideoCodec.MPEG4 ); Bitmap image = new Bitmap( width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb ); for ( int i=1;i<width; i++) for ( int j=1;j<height;j++) image.SetPixel ( i, j, Color.White ); // ??? // Color.White ==> image for ( int i = 0; i < 1000; i++ ) { image.SetPixel ( i % width, i % height,Color.Red ); writer.WriteVideoFrame ( image ); } pictureBox.Image = image; writer.Close(); image.Save ( "Out.png" ); } } }

    7 июля 2022 г. 20:46