Я пытаюсь сделать снимок экрана с помощью этой команды:
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");
Конечно, это не хорошее решение, что мне попробовать?