Почему Print Screen отличается от того, что на самом деле отображается на мониторе?

Я работаю над приложением, которое захватывает экран монитора в реальном времени, кодирует его, отправляет по сети Ethernet, декодирует, а затем отображает этот монитор в приложении.

Поэтому я помещаю приложение-декодер на тот же монитор, который снимается. Затем я открываю приложение таймера и кладу его рядом с приложением декодера. Затем я могу запустить таймер и увидеть задержку между основным экземпляром таймера и таймером в приложении.

Что странно, так это то, что если я сделаю снимок монитора камерой, я получаю одно измерение задержки (почти всегда ~100 мс), но если я снимаю экран печати монитора, задержка между ними намного ниже (~30-60 мс).

Это почему? Как работает Print Screen? Почему это приведет к разнице в 40+ мс? Какому измерению задержки мне следует доверять?

1 ответ

Print Screen сохраняет снимок экрана в буфер обмена, который хранится в вашей оперативной памяти (системе хранения с максимальной скоростью на вашем компьютере), тогда как то, что вы делаете, вероятно, записывает данные снимка экрана на жесткий диск / твердотельный накопитель, а затем снова считывает его для отправки через Интернет, что занимает намного больше времени.

Другие вопросы по тегам