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 Presentation Foundation Discussion :

Erreur de conversion de type binary to image


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut Erreur de conversion de type binary to image
    Bonjour,
    Dans un mes exemple d'apprentissage de WPF j'ai crée un converter de type binaire[] to image dont le code de la méthode convert est :

    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
    object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                var bytesImagesc = value as byte[];
                if (bytesImagesc != null && bytesImagesc.Length > 0)
                {
                    var objMemoryStream = new System.IO.MemoryStream(bytesImagesc);
                    System.Windows.Media.Imaging.BitmapImage objBitmapImg = new System.Windows.Media.Imaging.BitmapImage();
                    objBitmapImg.BeginInit();
                    objBitmapImg.StreamSource = objMemoryStream;
                    objBitmapImg.EndInit();
     
                    return objBitmapImg;
     
                }
                return null;
            }
    Mais lors de l'exécution l'exception au dessous est générée
    Impossible de trouver un composant d’image adapté pour terminer l’opération
    Sachant que j'utilise Visual studio 2008 et sql server 2005
    J'utilise entityframework pour l'accée à la base northwnd
    J'ai manipuler la table categories

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    L'erreur renvoyé ne me dit rien du tout. Mais par contre j'ai une solution qui serait de passer par l'url d'un fichier plutôt qu'un tableau de byte pour le convertir ensuite en ImageSource.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    Merci pour la réponse,
    L'erreur est générée lors de l'appel de la méthode EndInt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objBitmapImg.EndInit();
    Je n'ai pas des uri,mes données viennent d'une base de données.

    Dans la fenêtre ou je besoin de ce converter j'ai une liste des catégories lorsque je clique sur une ligne j'affiche le détail de la catégorie sélectionnée donc je ne vois pas l'utilité d"utilisée les uri.

    merci d'avance.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Parce qu'il est plus facile de stocker l'url d'une image dans une base de données et aussi plus facile de convertir l'url en ImageSource.

    si ce ne sont que des données d'une categorie alors pour un tableau si ce n'est que la catégorie possède une image ?

    dis moi si je me trompe !!

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    Moi j'utilise la base Northwnd de sql server.
    La table Categories possède un champ nommé Picture de type binairi, que je l'affiche dans un objet Image lors de la sélection d'une ligne de la liste des catégories

  6. #6
    Invité
    Invité(e)
    Par défaut
    Peut être que ce sont les données du champ Picture qui sont incorrecte.
    Convertir une image et stocke les byte dans un enregistrement et vérifie si c'est toujours le cas. Parce que ton convertisseur me semble correcte à 99%

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Il me semble que les images stockées dans Northwind ont un Header particulier (pourquoi ?!...). Du coup, il faut en tenir compte et ajouter un Offset de 78 bytes.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                MemoryStream ms = new MemoryStream();
                int offset = 78;
                ms.Write(bytesImagesc, offset, bytesImagesc.Length - offset);

    ps: j'ai retrouver quelques liens sur le sujets :
    http://www.google.fr/#hl=fr&q=c%23+n...76aff3ce737bfa

  8. #8
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Si ça peut te rassurer, ton converter est bon, j'utilise le même avec succès !

    Bonne soirée,

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par binoo Voir le message
    Salut,

    Il me semble que les images stockées dans Northwind ont un Header particulier (pourquoi ?!...). Du coup, il faut en tenir compte et ajouter un Offset de 78 bytes.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                MemoryStream ms = new MemoryStream();
                int offset = 78;
                ms.Write(bytesImagesc, offset, bytesImagesc.Length - offset);

    ps: j'ai retrouver quelques liens sur le sujets :
    http://www.google.fr/#hl=fr&q=c%23+n...76aff3ce737bfa
    J'avais un doute là dessus

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    Merci pour votre aide.
    Le problème est résolu

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

Discussions similaires

  1. erreur de conversion de type de donnée
    Par sunwind dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/05/2008, 11h44
  2. Réponses: 2
    Dernier message: 06/06/2007, 00h07
  3. Erreur 3421, Erreur de conversion de type de données
    Par khorn dans le forum VBA Access
    Réponses: 13
    Dernier message: 01/06/2007, 11h52
  4. [VB.Net] Erreur de conversion de type
    Par Khalid.bounouader dans le forum Accès aux données
    Réponses: 6
    Dernier message: 13/11/2006, 22h57
  5. Erreur de conversion de type Null en String
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/07/2005, 16h25

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