Tableau d'octets d'une Image Bitmap
J'ai fait ce code pour recevoir une image et la convertir en bitmap de l'image mais ça ne marche pas.
Voici le code:
public void ReceiveImage()
{
NetworkStream stream = new NetworkStream(socket);
byte[] data = new byte[4];
stream.read(data,0,data.length,0)
int size = BitConverter.ToInt32(data,0);
data = new byte[size];
stream.read(data,0,data.length)
MemoryStream imagestream = new MemoryStream(data);
Bitmap bmp = new Bitmap(imagestream);
picturebox1.Image = bmp;
}
Il arrive à:
Bitmap bmp = new Bitmap(imagestream);
Et me donne cette erreur:
Paramètre n'est pas valide
ce Code C#? Quand je l'ai copier dans Visual Studio, il a quelques fautes de frappe.
oui sa C# , mais vous devez utiliser le Système.IO; using System.Net.Prises; l'utilisation de System.Net;
Et aussi en utilisant le Système.De dessin.L'imagerie;
Peut-être que vous ne sont pas envoyées valide les données de l'image?
Paramètre n'est pas valide lorsque le paramètre n'est pas une image valide. Je suppose que il y a un problème avec la façon dont vous lisez le fichier
oui sa C# , mais vous devez utiliser le Système.IO; using System.Net.Prises; l'utilisation de System.Net;
Et aussi en utilisant le Système.De dessin.L'imagerie;
Peut-être que vous ne sont pas envoyées valide les données de l'image?
Paramètre n'est pas valide lorsque le paramètre n'est pas une image valide. Je suppose que il y a un problème avec la façon dont vous lisez le fichier
OriginalL'auteur Tarek Adel | 2012-07-30
Vous devez vous connecter pour publier un commentaire.
C'est une méthode alternative
merci de travailler pour moi
OriginalL'auteur morishuz
Vous êtes probablement ne pas recevoir assez d'octets dans
stream.read(data,0,data.length)
depuisRead
ne permet pas de garantir qu'il va liredata.length
octets. vous avez pour vérifier sa valeur de retour et continuer à lire jusqu'àdata.Length
octets sont lus.Voir : Flux de données.Méthode De Lecture'valeur de retour
PS: je suis en supposant que
length
s etread
s sont des fautes de frappe.De vérifier la
size
. Il peut être dans le network byte order. Vous pouvez essayer deIPAddress.NetworkToHostOrder(BitConverter.ToInt32(data,0))
pas de travail, vient de " data = new byte[taille];', puis me donne cette erreur "Opération Arithmétique a Entraîné un dépassement de capacité'
voulez-vous la fonction envoyer à mon client???
Qu'attendez-vous de moi à faire avec si peu d'info indiqué dans votre question? OK, j'ai trouvé explicite bug dans votre code, mais je ne suis pas un magicien. Quel type de serveur/client avez-vous de l'autre côté de votre connexion? dans le protocole est-il envoyer l'image?
OriginalL'auteur L.B
Je suppose que vous avez une table et vous voulez recevoir de l'image à partir de la base de données.
NetworkStream
OriginalL'auteur ALI VOJDANIANARDAKANI
Essayez ceci:
Try this
est juste un commentaire.Try this. This should work because...
est une réponse.OriginalL'auteur Serj-Tm