Эффективная программа захвата экрана
Я ищу создание своего рода программного обеспечения для удаленного рабочего стола, и мне необходимо передать экран пользователя через Интернет зрителю.
Моя цель - создать оптимизированный снимок, чтобы мне не приходилось передавать весь экран 10 раз в секунду.
У меня была идея сделать снимки экрана на локальном компьютере, а затем определить только ИЗМЕНЕННЫЕ пиксели из последнего снимка экрана. Таким образом, в основном, если бы они что-то сделали, только то, что изменилось на экране, будет отправлено и реконструировано с другой стороны, так что я могу сэкономить пропускную способность и ускорить ее для более медленных интернет-соединений.
Мои вопросы:
- Как я могу сравнить новый скриншот со старым и определить, что изменилось.
- Как бы я отправил информацию, обнаруженную на шаге 1, через стандартный поток TCP.
- Как мне восстановить эти данные, чтобы экран успешно обновлялся один раз на другой стороне.
1 ответ
VNC - это программное обеспечение для удаленного рабочего стола с открытым исходным кодом. Я рекомендую вам скачать исходный код и посмотреть, как он работает. Однако я уверен, что это не написано на C#.
Вот ссылка на исходный код TightVNC: http://www.tightvnc.com/download.php
FogCreek недавно использовал источник VNC для своего продукта CoPilot. Вы также можете скачать его источник здесь: https://www.copilot.com/faq/
надеюсь, это поможет