Conversion bmp->jpg sans accés disque

ssmint Messages postés 43 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 5 décembre 2008 - 7 nov. 2007 à 19:42
ssmint Messages postés 43 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 5 décembre 2008 - 8 nov. 2007 à 13:54
Bonjour à tous,
Dans le cadre d'un projet d'étude je dois réaliser un programme qui prend des screenshots en continu sur un poste et les envoie via socket sur un autre. Le problème étant biensur d'avoir un taux de rafraichissement correcte.
Je prend donc des captures d'écran en boucle avec les fonctions de L'API Win32.
Ce que je voudrais c'est convertir le bitmap en mémoire pour avoir un jpg en mémoire pour enfin l'envoyer dans le socket (sans bien sur passer par un accés disque).
Le problème c'est qu'avec la winapi on ne manipule que des HDC/HBITMAP.

 J'aimerais donc savoir :
=> comment récupérer un pointeur sur la zone mémoire pour avoir accés directe au données
et surtout
=> comment utiliser ce pointeur dans une fonction (par exemple de la lib FreeImage) pour convertir en JPG en donc obtenir un "fichier" jpg en mémoire.
et pour finir
=> comment afficher ce buffer du coté client en winapi (IPicture ou autre)

Voilà si vous avez la solution à un (ou plusieur de ces problèmes), merci de m'aider... 

2 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
7 nov. 2007 à 23:21
Cependant le temps de conversion bitmap->jpeg risque de supprimer le bénéfice de la réduction de taille...
Ce que tu pourrais également faire est une transmission vectorielle : tu n'envoies que les pixels qui ont changé depuis l'image précédente; à part si tu es en train de regarder un film, cela pourrait être intéressant.
0
ssmint Messages postés 43 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 5 décembre 2008
8 nov. 2007 à 13:54
Merci pour ta réponse, j'y ai pensé, je pense que j'essaierai également cette methode. Mais dans ce cas j'ai toujours le 1er problème ce pose toujours, à savoir comment obtenir un pointeur sur les données bitmap en mémoire et aussi du coup comment redimensionner le bitmap.
Cependant la compression jpg divise la taille du bitmap par 50 à dimension égale (lib FreeImage), je pense que c'est la meilleur methode pour l'envoie via internet vu le débit et sachant qu'une transmission vectorielle peut être importante quand une grose partie de l'image est redissinée. La compression  JPG permettrais d'avoir un taux de fps constant.

En tout cas merci.
0
Rejoignez-nous