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

Silverlight Discussion :

Converter Byte() -> BitmapImage : AccessViolationException


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut Converter Byte() -> BitmapImage : AccessViolationException
    Bonjour à tous,

    J'utilise un converter perso qui me permet de traduire un tableau de byte en BitmapImage dans mes vues. En effet, je reçois mes DTO de mon webservice avec des images en type Byte().
    Une fois côté client, je les traduit en BitmapImage à l'aide d'un converter 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Dim param As String = parameter
            If Not TypeOf value Is Byte() OrElse value Is Nothing Then
                If Application.Current.Resources.Contains(param) Then
                    Return Application.Current.Resources(param)
                Else
                    Return Nothing
                End If
            Else
                Try
                    Dim photo As Byte() = value
                    Dim _photoBitmap As New BitmapImage
                    Using ms As New MemoryStream(photo)
                        ms.Seek(0, SeekOrigin.Begin)
                        _photoBitmap.SetSource(ms)
                    End Using
     
                    Return _photoBitmap
                Catch ex As Exception
                    If Application.Current.Resources.Contains(param) Then
                        Return Application.Current.Resources(param)
                    Else
                        Return Nothing
                    End If
                End Try
            End If
    Malheureusement, je reçois par moments une exception AccesViolationException que je n'arrive pas à résoudre. A premiere vue, pensez vous que mon converter soit correct en terme d'accès mémoire et compagnie ? Sauriez vous d'où pourrait provenir cette exception ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Essaye de t'inspirer du code qui est là pour (re)faire ton converter: http://social.msdn.microsoft.com/for...-aff60b63fee6/

  3. #3
    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
    Citation Envoyé par Thomas Lebrun Voir le message
    Essaye de t'inspirer du code qui est là pour (re)faire ton converter: http://social.msdn.microsoft.com/for...-aff60b63fee6/
    Ouais mais ça c'est du WPF... et apparemment la classe BitmapImage est différente en Silverlight (pas de propriété StreamSource, pas de BeginInit/EndInit...)

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Le code parait bon (si j'arrive à lire correctement du VB).

    Tu as cette erreur sur quelle ligne ?

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ouais mais ça c'est du WPF... et apparemment la classe BitmapImage est différente en Silverlight (pas de propriété StreamSource, pas de BeginInit/EndInit...)
    Ah yes, c'est vrai

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Generes-tu ton BitmapImage dans un thread dès fois (autre que UI thread) ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    Salut à tous,

    A priori non c'est géré dans le même thread que l'UI. C'est directement le converter Silverlight qui le fait et je n'ouvre aucun autre thread.
    Là je viens d'essayer un autre code et je me récupère la même erreur. C'est vraiment très bizarre. J'ai l'impression que la conversion Byte() <-> BitmapImage pose probleme...
    Je me demande s'il n'y a pas quelque chose à faire pour que la mémoire soit correctement gérée

Discussions similaires

  1. Convertion byte? to int?
    Par BenoitM dans le forum C#
    Réponses: 6
    Dernier message: 07/09/2011, 15h57
  2. Convertion tableaux de bytes
    Par frouge dans le forum Langage
    Réponses: 14
    Dernier message: 16/10/2006, 23h47
  3. convertion de byte[] en chaine?
    Par xheo dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2006, 11h22
  4. [C#2.0] Convertion Byte[] en float
    Par Biloutor dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/06/2006, 11h08
  5. Réponses: 2
    Dernier message: 06/12/2005, 12h01

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