Снимки экрана содержат только черные пиксели - PullRequest
2 голосов
/ 31 августа 2010

Почему я получаю черный экран при использовании следующего кода для создания снимка экрана каждые 20 миллисекунд и передачи его одноранговому узлу по зашифрованному соединению? (Я знаю, что 20 миллисекунд немного быстрее частоты обновления, но, похоже, это не проблема. Процессор и сеть могут не отставать от частоты обновления, проблема в том, что растровое изображение выглядит полностью черным РЕДАКТИРОВАТЬ: Теперь я знаю, что это какая-то странная проблема с сетью, но теперь изображение выглядит размытым, как будто это плохой аналоговый сигнал. Я приложил к этой записи скриншот программы. http://imgur.com/y9rWb.png

 P2PStream thestream = (P2PStream)sender;
        Bitmap mymap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
        Graphics screenshotGFX = Graphics.FromImage(mymap);
        screenshotGFX.CopyFromScreen(new Point(),new Point(),new Size(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height));
        Stream encryptedStream = networkLogic.getCryptoStream(thestream, true);
        while (true)
        {
            try
            {
                screenshotGFX.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
                mymap.Save(encryptedStream,System.Drawing.Imaging.ImageFormat.Png);

            }
            catch (Exception)
            {
                MessageBox.Show("A client has disconnected");
                break;
            }
            System.Threading.Thread.Sleep(20);
        }

1 Ответ

1 голос
/ 05 мая 2011

Это была сетевая ошибка с маршрутизатором (неисправная поддержка XSF), и теперь она исправлена.

...