kikiokiller
Messages postés42Date d'inscriptionlundi 26 février 2007StatutMembreDernière intervention31 mai 2009
-
26 déc. 2008 à 11:09
kikiokiller
Messages postés42Date d'inscriptionlundi 26 février 2007StatutMembreDernière intervention31 mai 2009
-
27 déc. 2008 à 12:14
Bonjour,
J'essai de développer une application oû le but est de passer une info type image du client vers le serveur.
J'ai une application client qui doit piloter mon application serveur en réseaux local.
J'utilise donc les tcp pour les relier. Jusque là parfait.
Mais comment dois-je procéder pour prendre une image de mon disque dur client et la faire afficher dans mon application sur le serveur.
kerma26
Messages postés36Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention20 août 2009 26 déc. 2008 à 12:53
Salut,
Donc si j'ai bien compris, de ton client tu veux transférer une image vers ton serveur et qu'elle s'affiche directement.
Donc si c'est bien ça, va falloir que du côté client tu charge une image dans un tableau de bytes, avec :
System.Drawing.Bitmap bi = new System.Drawing.Bitmap("ton_image_avec_extension"); //en gros t'ouvre l'image tu prend les infos
MemoryStream memStream = new MemoryStream(); // tu cree un flux
bi.Save(memStream, System.Drawing.Imaging.ImageFormat.Jpeg); // tu met ton image dans ce flux
byte[] TabImg = memStream.ToArray(); //tu le trnasforme en tableau de byte
memStream.Close(); // tu ferme les ressources que tu as utilisé
memStream.Dispose();//idem
taSocket.Send(TabImg); // t'envoi le tableau
Bon l'inconvégnant ici c'est qu'on ne donne pas de taille à nôtre tableau de byte donc plus ton image est grosse et plus sa va te bouffer le la mémoire mais bon.
Ensuite du côté serveur, tu reçoit donc un tableau de byte :
taSocket.receive(tonImg);//bon la synthaxe ne doit pas être correcte là, en clair la c'est la récéption côté serv (tonImg = byte[])
MemoryStream memStr = new MemoryStream(tonImg);//tu met ton tableau dans un flux
Bitmap bi = new Bitmap(memStr);//tu tranforme se flux en image enfin presque
pictureBox1.Image = bi; // et la ben soit tu l'affiche dans une picture box pour qu'elle s'affiche directement sans l'enrestrer soit tu peut directement l'enregister sur le le serveur, apres c'est toi qui voit ce que tu veux en fair.
Mais ca coince du coté serveur, je ne sais pas koi mettre pour lui faire reconnaitre la socket et mon fameu "TabImg". Etant donné que sur le serveur, c'est une application differente, le programme ne comprend pas.
D'avance merci.
kerma26
Messages postés36Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention20 août 2009 27 déc. 2008 à 11:49
Ok, je pense avoir une petite idée du problème et aussi une petite idée de la solution, mais il faudrait que tu poste le bout de code de réception côté serveur.
Je pense que tu doit recevoir une chaine de caractère et il faudrait donc convertir cette chaine en byte avec la commande :
- "Byte[] tabImg = Encoding.ASCII.GetBytes(string se_que_tu_reçoit)"
enfin ça ce n'est que supposition.
kikiokiller
Messages postés42Date d'inscriptionlundi 26 février 2007StatutMembreDernière intervention31 mai 2009 27 déc. 2008 à 12:14
Puis-je me permettre de te donner mon adresse msn, si tu as un peu de temps à me consacrer. Afin que je puisse t'expliquer un peu mieux mon projet et le but de la manipulation.
Je pense aussi que se sera plus simple. Je mettrais ta solution sur ce forum une fois le problème réglé.
kikiokiller@hotmail.fr