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

Windows Forms Discussion :

MemoryStream, je ne récupère pas mes données


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut MemoryStream, je ne récupère pas mes données
    Bonjour,

    J'utilise MemoryStream pour sauver une image mais je ne parviens pas à la récupérer... Je ne parviens pas à trouver mon erreur.

    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
     
     
        Private imagess As Image
     
     
    'Function
        Private Function BmpToBytes_MemStream(ByVal bmp As Bitmap) As Byte()
     
            Dim ms = New MemoryStream()
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)
     
            Dim bmpBytes As Byte() = ms.GetBuffer()
            bmp.Dispose()
            ms.Close()
     
            Return bmpBytes
        End Function
     
        Function GetStringFromByteArray(ByRef SrcArray() As Byte) As String
            Dim enc As New System.Text.ASCIIEncoding()
            Return enc.GetString(SrcArray)
        End Function
     
        Public Function ByteArrayToImage(ByVal ByteArray As Byte()) As Image
            Dim stream As New MemoryStream(ByteArray, 0, ByteArray.Length)
            Return Image.FromStream(stream, True)
        End Function
     
        Public Shared Function StrToByteArray(ByVal str As String) As Byte()
            Dim encoding As New System.Text.ASCIIEncoding()
            Return encoding.GetBytes(str)
        End Function 'StrToByteArray
     
     
    'Code d'appel des fonction
            Dim stream As MemoryStream = New MemoryStream()
            imagess.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
            Dim array As Byte() = stream.ToArray()
     
            Dim img_string As String = GetStringFromByteArray(array)
            Dim bitear As Byte() = StrToByteArray(img_string)
            PictureBox1.Image = ByteArrayToImage(bitear)
    J'ai une erreur
    ArgumentException, le paramètre n'est pas valide
    .

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Mais que fais tu ?!
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim img_string As String = GetStringFromByteArray(array)
            Dim bitear As Byte() = StrToByteArray(img_string)
    C'est quoi ça ? De plus si tu test bitear n'a pas la même valeur que array, car la conversion en string avec l'encoding ASCII perd certains caractères des données qui ne sont pas codées convenablement. Mais surtout, pourquoi fais tu cela ? C'est pour copier ton array vers un autre array ? Si c'est ça, crée un nouvel array de la bonne taille et utilise Array.Copy.

    Et sinon elle sort où ton erreur "ArgumentException" ? (sur quelle ligne ?)

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut
    Effectivement, j'ai changé d'encodage. En ASCII, je perdais des données et plus en base 64.

    Merci BCP !!!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/04/2009, 15h45
  2. Delphi n'affiche pas mes données en varchar de mySQL
    Par antho2601 dans le forum Bases de données
    Réponses: 0
    Dernier message: 31/10/2008, 15h42
  3. Réponses: 6
    Dernier message: 22/05/2008, 11h59
  4. [EasyPHP] je ne recupere pas mes données
    Par chawkiste dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/06/2007, 00h04

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