Winsock et IPicture

stefsoft Messages postés 119 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 28 novembre 2008 - 30 mars 2006 à 17:13
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 3 avril 2006 à 11:51
Bonjour,

je cherche à envoyer un IPicture sans faire de SavePicture sur le disque local. L'envoi doit se faire pas winsock.
Là je sèche....

si vous avez une idée

Merci

5 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 01:49
Salut stefsoft,

j'essaies de reformuler :

dans le cadre d'un échange client/serveur (serveur/client en l'occurence), tu souhaites envoyer un object implémentant l'interface IPicture, du serveur vers le client, dans le but que l'objet finisse encapsulé dans un fichier d'un format graphique quelconque (que tu ne spécifies pas), et cela, sans que le client ait sollicité la méthode SavePicture. Cet envoi passe par un flux de données (dont le protocole n'est pas spécifié) à travers des connecteurs Winsock.

Est-ce bien cela? (c'est gonflé d'être si exigeant) :)

Bon, pour le protocole, si ce sont de gros fichiers, et que tu veux être sûr qu'ils sont arrivés en entier, et savoir quand ils sont arrivés, Utilises TCP.
Si tu comptes les envoyer par trames découpées (pour limiter le trafic), Utilises UDP.

Envoies ensuite ton objet en binaire (stocké dans un tableau d'octets).

Côté client, reçoit le tableau, reconstitues un STDPicture (avec l'API?), stockes-le dans un STDPicture, transtypes-le vers un IPicture, et utilises IPicture_SaveAsFile.

PS : je ne te demande pas pourquoi !?!

Te vas-ce? ou me trompe-je?

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
stefsoft Messages postés 119 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 28 novembre 2008
2 avril 2006 à 10:03
Techniquement c'est bien cela, côté client j'ai le IPicture maintenant je veux récupérer le tableau de données pour le transmettre effectivement pas winsock en TCP.
Mon soucis est bien de récupérer le tableau d'octet de l'image sans avec à l'enregistre au préalable
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
3 avril 2006 à 00:08
Salut stefsoft,

si je comprend ce que tu viens de dire maintenant, c'est donc le contraire de ce que je t'ais dit avant ! Ton client veut uploader vers le serveur (c'est juste histoire de parler de la même chose)

Ce qui est dommage, c'est de vouloir partir de IPicture. Si tu pouvais te contenter d'une PictureBox, il y aurait bien GetDIBits (prend un bitmap et le stocke dans un tableau d'octets à 2 dimensions), qui travaille avec des bitmaps, et son frère ennemi SetDIBitsToDevice (prend un tableau d'octets à 2 dimensions, et en fait un bitmap).

Qu'en penses-tu?
à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
stefsoft Messages postés 119 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 28 novembre 2008
3 avril 2006 à 11:37
Salut rvblog,

C'est vrai qu'avec un PictureBox ce serait simple et je n'aurais pas eu à me poser cette question. Mais je veux effectivement passer pas un IPicture... pour d'aider la finalité est un sorte de VNC...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
3 avril 2006 à 11:51
Salut stefsoft,

d'accord, c'est noté.
par contre, GetDIBits fonctionne avec la méthode Picture (IPictureDisp) d'un PictureBox, et sans passer par un fichier. Mais cela ne suffit peut-être pas!

à+

rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
Rejoignez-nous