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

ASP.NET Discussion :

Convertir une image en byte array!


Sujet :

ASP.NET

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    85
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 85
    Par d�faut Convertir une image en byte array!
    Bonjour : ),

    Je voudrais un peut d'aide au niveau d'une fonction que j'ai cr�e, permettant de convertir des images, situ� dans un dossier, en byte array, ceci dans le but de le transmettre � une application flex, le reconvertissant en image. (en effet les types d'images flex et c# sont diff�rentes).

    Voici ma fonction, dont je ne sais o� est l'erreur, en faites je r�cup�re le chemin de l'image et non son contenu...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    using System;
    using System.IO;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections;
    using System.Drawing;
    using System.Windows.Forms;
     
    /// <summary>
    /// Description résumée de Class1
    /// </summary>
    /// 
     
    namespace External
    {
        public class BiblioPlan
        {
            private ArrayList listeBiblio;
            private byte[] MesBytes;
            private Image img;
            private ArrayList listeImage;
            private String path;
     
            //this function will have a parameter who will be the path of the application
            public ArrayList getBiblio()
            {
                listeBiblio = new ArrayList();
                listeImage = new ArrayList();
                path = "";
                Console.Write(System.IO.Path.GetDirectoryName(Application.ExecutablePath));
     
                String[] fichiers = Directory.GetFiles("C:/blabla/Flex3/src/assets/image");
                for (int i = 0 ; i < fichiers.Length ; i++)
                {
                    // écrire en console les noms des fichiers
                     Console.Out.WriteLine(fichiers[i]);
     
                    // read un fichier et le transformer en byte
                     System.IO.FileInfo MonFichier = new System.IO.FileInfo(fichiers[0]);
                     System.IO.FileStream MonFileStream = MonFichier.OpenRead();
                     listeBiblio.Add(MonFileStream.Name);
                     byte[] TableauDeBytes = new byte[MonFileStream.Length];
                     MonFileStream.Read(TableauDeBytes, 0, (int)MonFileStream.Length);
                     MonFileStream.Close();
                     MesBytes = TableauDeBytes;
                    // créer l'image associée au buffer
                     if (TableauDeBytes.Length > 0)
                     {
                         img = StreamToImage(TableauDeBytes);
     
                         // créer liste image
                         listeBiblio.Add(fichiers[i]);
                         listeImage.Add(img);
                         MesBytes.Initialize();
                     }
                }
                return listeImage;
            }
     
            public static Image StreamToImage(byte[] buff)
            {
                // créer image associée au buffer
                MemoryStream memStream = new MemoryStream();
                Stream ms = new MemoryStream(buff);
                Image img = Image.FromStream(ms);
                return img;
            }
     
     
        }// end of class
    }// end of package
    merci de vote aide

  2. #2
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Octobre 2005
    Messages
    32
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par d�faut
    La balise [CODE] c'est bien pour afficher des long bouts de code, ca aide a trouver les erreurs! Sinon y'a une chose qui me parait bizare c'est le System.IO.FileInfo MonFichier = new System.IO.FileInfo(fichiers[0]); ou je verrai bien un i � la place du 0. Sinon je n'ai pas trop compris pourquoi tu cr�ais le tableau de buffer et que tu le re-transformait en image mais sans doute a tu tes raisons. Pour la transformation en byte[] j'utiliserai plut�t le code suivant, qui est l'�quivalent invers� de ta fonction StreamToImage:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    Bitmap b = new Bitmap("file.jpg");
    MemoryStream ms = new MemoryStream();
    b.Save(ms, ImageFormat.Jpeg);
    ms.ToArray();
    Bonne chance pour traquer ton(tes) bug(s)!

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    85
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 85
    Par d�faut
    Oui , voila, c'�tait tout � fait �a, j'avais mis l'indice "0" au d�but pour faire mes tests et ensuite j'ai oubli� de remettre "i" donc, du coup �a marche... hum

    La communication entre flex et c# pose quelque probl�me de typage, un objet image cot� c# n'est pas le m�me cot� flex, il faut donc convertir en byte array

    Apr�s en effet je le transformer en Image (encore pour tester, mais c'est supprimer maintenant), l'objectif est de lire des images dans un dossier et de les transf�rer � une application flex, voila, avec ce "i" magique �a marche (apr�s avoir g�rer le flex bien sur ^^)

    Merci � toi

    J'aurais peut �tre un autre souci justement, c'est l'�tape inverse !!!

    j'envoie depuis le flex un tableau de byte et veut le convertir en image c#, mais une erreur ce produit au niveau de ma fonction

    dont voici le code

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public static int setImage(byte[] img, int IdGroup)
            {
                DBGroup grp = GetGroup(IdGroup);
     
                MemoryStream ms = new MemoryStream(img);
                Image returnImage = Image.FromStream(ms);
     
               // Image image = StreamToImage(img);
                if (returnImage != null)
                {
                    grp.picture = returnImage;
                }
                return grp.picture.Size.Height;
            }
    img est mon tableau fournit par flex

    L'erreur est la suivante

    Function call Error : [FaultEvent fault=[RPC Fault faultString="Le param�tre n'est pas valide." faultCode="Server.Processing" faultDetail="
    � System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)

    � System.Drawing.Image.FromStream(Stream stream)
    le param�tre "ms" ne semble plaire! alors qu'il demande bien un Stream.
    "m�me avec un Stream ms = new MemoryStream(img), j'ai la m�me erreur"

    En tout cas merci.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 17/02/2014, 16h25
  2. Transformer une image to byte array
    Par mimomimo dans le forum D�buter
    R�ponses: 14
    Dernier message: 15/03/2011, 11h20
  3. convertir une image en un tableau de byte
    Par isoman dans le forum Graphisme
    R�ponses: 7
    Dernier message: 30/03/2009, 10h17
  4. Convertir une Image en byte[]
    Par Invit� dans le forum Entr�e/Sortie
    R�ponses: 7
    Dernier message: 29/05/2008, 11h48

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