Работа на скриншоте с Aforge - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь сделать снимок экрана с помощью этой команды:

var bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
                               Screen.PrimaryScreen.Bounds.Height,
                               PixelFormat.Format32bppArgb);

            var gfxScreenshot = Graphics.FromImage(bmpScreenshot);
            gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
                                        Screen.PrimaryScreen.Bounds.Y,
                                        0,
                                        0,
                                        Screen.PrimaryScreen.Bounds.Size,
                                        CopyPixelOperation.SourceCopy);

Затем я хотел бы выяснить, содержится ли на снимке другое изображение (я использую AForge).

Проблема в том, что моя переменная gfxScreenshot не принимается AForge.

Использование следующей команды и преобразование снимка экрана в растровое изображение не работает и выдает ошибку:

AForge .Imaging.UnsupportedImageFormatException: 'Формат исходного пикселя не поддерживается фильтром.'

Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height,gfxScreenshot);

Я нашел решение, которое сохраняет скриншот в формате Jpeg и перезагружает его, используя

    System.Drawing.Bitmap sourceImage = (Bitmap)Bitmap.FromFile(@"C:\Users\Paulo\source\repos\billellera\billellera\mainscreen.jpg");

Конечно, это не хорошее решение, что мне попробовать?

...