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 :

Convertir une image en Base64String ou arriver a instancier SystemDrawing.Image avec FromStream(stream)


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 76
    Points : 210
    Points
    210
    Par défaut Convertir une image en Base64String ou arriver a instancier SystemDrawing.Image avec FromStream(stream)
    Bonjour à tous !
    Je souhaiterai transformer un tableau de byte en image.
    Sur le net j'ai trouver 2 solutions et biensur si je suis là c'est que ces 2 solutions ne fonctionne pas chez moi ! Alors oui je l'avoue je suis débutant et je suis très certainement passé à côté de quelque chose de plus ou moins évident et peut être que vous allez m'aider à corriger cela

    Pour la première solution :
    Il s'agit d'instancier un MemoryStream puis d'instancier une image de type System.Drawing.Image comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MemoryStream ms = new MemoryStream(MonTableauDeBytes,0,MonTableauDeBytes.Length);
    System.Drawing.Image img = System.Drawing.Image.FromStream(MonTableauDeBytes) // C'est ici que ce produit l'erreur : Paramètre non valide
    J'ai eu beau retourner le problème dans tous les sens que j'ai pu, je ne suis parvenue à aucune solution

    Pour la deuxième solution :
    Il s'agit d'instancier une image de type System.Web.UI.WebControls.Image. Mais cet objet réclame une Url donc sur le net j'ai trouver cette méthode pour transformer un tableau de byte en Url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      private string GetImage(byte[] bytes)
        {
            return "data:image/jpg;base64," + Convert.ToBase64String(bytes);
        }
    Du coup avec cette méthode je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
     
    image.ImageUrl = GetImage(MonTableauDeBytes);
    Ici le problème c'est que get image me renvois : "data:image/jpg;base64,AAAAAAAAAAAAAAAAAAAA...etc"
    Il me semble que cela représente une erreur et d'ailleurs l'image n'affiche rien sinon une croix.

    Voilà j'arrive au bout des solutions et reste bloqué pour l'instant, si quelqu'un à un solution qui marche qu'il n'hésite pas !

    merci par avance déjà de m'avoir lu

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 76
    Points : 210
    Points
    210
    Par défaut
    Bon ! Et bien j'ai trouvé la solution en continuant à creuser,

    Il se trouve que je ne transformait pas correctement le stream en byte[]

    j'ai donc trouvé une méthode qui renvois un tableau de byte à partir d'un stream ensuite tout fonctionne ^^

    public static byte[] ReadFully(Stream input)
    {
    byte[] buffer = new byte[16 * 1024];
    using (MemoryStream ms = new MemoryStream())
    {
    int read;
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
    {
    ms.Write(buffer, 0, read);
    }
    return ms.ToArray();
    }
    }
    Voilà si ça peut servir à ceux qui rencontre un problème similaire c'est parfait !

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

Discussions similaires

  1. Convertir une image BMP 8 bits en BMP 24 bits
    Par SauCisS dans le forum Bibliothèques
    Réponses: 17
    Dernier message: 23/03/2005, 09h51
  2. Convertir une image PNM en autre chose ...
    Par mattmarttigan dans le forum C
    Réponses: 9
    Dernier message: 09/02/2005, 20h34
  3. Comment convertir une image 24 bits en 8 bits ?
    Par James64 dans le forum Langage
    Réponses: 22
    Dernier message: 13/12/2004, 20h12
  4. [C#] Convertir une Image en Icon
    Par Piolet dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/08/2004, 13h41
  5. [C#] Comment convertir une image bmp en jpg !!!
    Par vandeyy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2004, 20h37

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