2010-06-23 9 views
2

J'essaye de créer une application simple pour regarder un écran dans Qt. J'ai écrit mon propre serveur et client. Au moment où le client envoie simplement une capture d'écran de l'écran entier au serveur afin qu'il puisse être affiché. Je me demande simplement si je peux implémenter VNC dans mon serveur et mon client, ou est-ce qu'il y a un moyen de comparer deux images pour que je puisse seulement envoyer ce qui a changé?Implémentation de VNC dans Qt

Le client et le serveur utilisent UDP pour envoyer la capture d'écran et je souhaite que l'image soit de la meilleure qualité possible.

Répondre

1

Il existe de nombreuses façons de détecter les modifications à l'écran, mais le plus efficace serait probablement d'utiliser un pilote miroir. VNC utilise également un système d'accrochage pour enregistrer les zones de l'écran qui sont «susceptibles d'être modifiées».

Tout saisir, puis comparer les pixels pour les changements est également possible, mais nécessite un peu plus de travail côté serveur puisque vous devez conserver un tampon de ce que vous avez déjà envoyé au client. Ce tampon est ensuite utilisé lorsque vous comparez l'instantané actuel pour détecter les modifications.