IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème de converstion MemoryStream en Image


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut Problème de converstion MemoryStream en Image
    Bonjour,

    Je récupère une image de 180x120 représenter par un tableau d'octets de 21600 occurences.
    Je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Image _bmp;
     Bitmap bmp;
     byte[] img = new byte[180 * 120];
     using (MemoryStream ms = new MemoryStream(img))
    {
      bmp = new Bitmap(ms);
      _bmp  =Image.FromStream(ms);
    }
    return _bmp;
    J'ai l'erreur suivante sur la création de bmp / _bmp :
    L'exception ArgumentException n'a pas été gérée. Le paramètre n'est pas valide.
    Je ne comprends pas le pourquoi de cette exception.
    Quelqu'un à une idée?

    cordialement.

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    En recherchant sur la MSDN :

    ArgumentException / Bitmap Constructor (Stream) :
    Citation Envoyé par MSDN
    stream does not contain image data or is null.
    -or-
    stream contains a PNG image file with a single dimension greater than 65,535 pixels.
    ArgumentException / Image.FromStream :
    Citation Envoyé par MSDN
    Le format d'image du flux n'est pas valide.
    - ou -
    stream est référence Null (Nothing en Visual Basic).
    Etant donné que 180 x 120 = 21600 et que ton stream n'est pas null, ça devrait plutôt être la première option : pas de "format" image.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    je voie pas ou tu récupères ton image étant donné que tu initialises seulement ton tableau de byte mais que tu ne l'affecte jamais

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il faut savoir quel est le format de ton image... A priori, ton tableau ne contient que les données des pixels, pas l'en-tête de l'image. Tu ne peux donc pas directement charger une image à partir de là.

    Si tu connais le format de pixel (nombre de pits par pixels, couleurs indexées ou non etc), tu peux créer une image de la taille voulue et copier les pixels en utilisant LockBits.

  5. #5
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Ok, je comprends mieux, j'avais le doute sur ce fameux entête manquant.
    Merci de votre aide. Je me renseigne sir la fonction LockBits ( merci pour le lien).

  6. #6
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    J'ai trouvé comment réaliser mon image grâce à lockbits.
    Bon tuto sur la msdn.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/11/2005, 14h39
  2. Réponses: 2
    Dernier message: 16/10/2005, 19h19
  3. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59
  4. [W3C] Problème : cadre autour d'une image en a href
    Par Warz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 20/07/2005, 10h32
  5. probléme de cadre sur une image qui me sert de lien
    Par thomas_chamas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/11/2004, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo