Je capture des images à partir d'un imageur de caméra intelligente et je reçois le tableau d'octets de la caméra via la programmation de socket (l'application .NET est le client, la caméra est le serveur).La méthode Image.FromStream() renvoie Invalid Argument exception
Le problème est que j'obtiens une exception System.InvalidArgument à l'exécution. J'ai cherché ce problème dans de nombreux forums et essayé les suggestions données par de nombreux experts, mais rien n'a aidé.
Je ne pense pas qu'il y ait un problème avec le tableau d'octets en tant que tel parce que lorsque je charge le même tableau d'octets dans mon application client VC++ MFC, j'obtiens l'image. Mais cela ne fonctionne pas en C# .NET.
Quelqu'un peut-il m'aider?
PS:
D'autres méthodes que j'ai essayé d'accomplir la même tâche sont:
1.
private Image byteArrayToImage(byte[] byteArray)
{
if(byteArray != null)
{
MemoryStream ms = new MemoryStream();
ms.Write(byteArray, 0, byteArray.Length);
ms.Position = 0;
return Image.FromStream(ms, false, false);
}
return null;
}
2.
private Image byteArrayToImage(byte[] byteArray)
{
if(byteArray != null)
{
TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap));
Bitmap b = (Bitmap)tc.ConvertFrom(byteArray);
return b;
}
return null;
}
Aucune des méthodes ci-dessus travaillé. Aide aimablement.
Qu'est-ce qui se passe si vous écrivez simplement le bytearray dans un fichier sur le disque? Le fichier est-il ouvert avec quelque chose comme photoshop? – Chris
l'avez-vous résolu? J'ai le même problème – robob