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 Phone .NET Discussion :

Convertir Stream en Image


Sujet :

Windows Phone .NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut Convertir Stream en Image
    Bonjour,

    Je récupère des objets Song depuis la média librairy ainsi que la pochette de l'album sous la forme d'objet Stream.

    Et maintenant, je cherche a trouver un moyen de convertir l'objet stream en Image.

    Les seules solutions que j'ai trouvé utilise une méthode de la référence systeme.drawing.dll seulement cette dll ne peux pas être chargé dans une application Windows Phone.

    Auriez vous d'autres pistes ou même encore mieux des solutions hihi ?

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Il faut que tu utilises la classe WriteableBitmap.
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par DotNET74 Voir le message
    Il faut que tu utilises la classe WriteableBitmap.
    Ça n'a rien à voir, ça sert à modifier une image...

    Il faut utiliser BitmapImage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (var stream = ...)
    {
        var image = new BitmapImage();
        image.SetSource(stream);
    }

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Il faut utiliser BitmapImage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (var stream = ...)
    {
        var image = new BitmapImage();
        image.SetSource(stream);
    }
    Je plussoie, ceci m'a également permis de résoudre mon problème. Voici mon post sur lequel je donne un exemple d'utilisation : conversion-image-base64-image-wp7
    Pensez au et un petit vote si mon post vous a été utile .

  5. #5
    Membre émérite
    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 : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    n'oublie pas de try catcher autour de ton SetSource, on ne sait jamais (si l'image est un gif par exemple PATATRA). Dans l'exemple ce n'est peut être pas primordiale mais pour des images en provenance des contacts ou une sortie de PhotoChooserTask c'est indispensable !
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Bonsoir, bonsoir,

    merci pour votre aide, j'ai fait quelque test, en voici 2 :

    1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Album unAlbum = uneMusique.Album;
    Stream unStreamMusique = unAlbum.GetAlbumArt();
    WriteableBitmap unTest = new WriteableBitmap(200, 200);
    unTest.SaveJpeg(unStreamMusique, 200, 200, 0, 0);
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Album unAlbum = uneMusique.Album;
    Stream unStreamMusique = unAlbum.GetAlbumArt();
    BitmapImage unBitMap = new BitmapImage();
    unBitMap.SetSource(unStreamMusique);
    Seulement en faisant quelques test je me suis rendu compte que mes album dans mon simulateur ne contienne pas d'image, comment vérifier que l'une de mes fonctions fonctionne ?

  7. #7
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Ton premier bout de code n'est pas bon, ça enregistre le WriteableBitmap sur le stream récupéré par GetAlbumArt, alors que c'est le contraire que tu veux faire... de toutes façons, comme je te l'ai dit, WriteableBitmap ne sert pas à ça.

    Citation Envoyé par Nanais19 Voir le message
    Seulement en faisant quelques test je me suis rendu compte que mes album dans mon simulateur ne contienne pas d'image, comment vérifier que l'une de mes fonctions fonctionne ?
    Bah tu peux tester avec un stream bidon (un FileStream sur un fichier image par exemple)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Je veux bien mais je ne trouve pas cette propriété ou méthode sur l'objet image ni sur l'objet BitmapImage.

  9. #9
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Nanais19 Voir le message
    Je veux bien mais je ne trouve pas cette propriété ou méthode sur l'objet image ni sur l'objet BitmapImage.
    Quelle "propriété ou méthode" ? J'ai parlé d'un FileStream ; c'est une classe... Pour tester tu pourrais modifier ton simulateur pour qu'il renvoie un flux sur un fichier (donc un FileStream).

    Ou alors j'ai pas compris ce que tu voulais, mais il faut dire que tu ne donnes pas beaucoup de détails...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Non, pardon, c'est moi qui avait mal compris... La fatigue...

    A force d'être plongé dedans et de traiter plusieurs petit problème par ci par là, je me mélange un peu. Désolé

    En tout cas, merci bien pour votre aide, sa m'aide à avancer et surtout à comprendre hihi.

    Je testerai ça demain et je vous tiens au courant.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Décidément, je suis vraiment pas très débrouillarde !

    J'ai pourtant était m'inspirer directement sur la msdn et pourtant ça ne marche pas !

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string path = @"C:\Utilisateurs\User1\Mes images\Note2.jpg";
                            FileStream unFS = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
    Et voici, le message d'erreur :
    Attempt to access the method failed: System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare)

  12. #12
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est quoi ce code, c'est le simulateur ? Il tourne sur le PC ou sur le téléphone ?
    Quel est le type de l'exception ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    C'est le code que je fait tourner sur le simulateur d'un Windows Phones. Je récupère l'erreur via un try catch et elle se déclenche sur la ligne de l'instaciation du FileStream

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                        try
                        {
                            //Stream unStreamMusique = unAlbum.GetThumbnail();
                            string path = @"C:\Utilisateurs\User1\Mes images\Note2.jpg";
                            FileStream unFS = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
                            BitmapImage unBitMap = new BitmapImage();
                            unBitMap.SetSource(unStreamMusique);
                        }
                        catch (Exception er)
                        {
                            string erreur = er.ToString();
                        }

  14. #14
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Je dis peut-être un bêtise (je n'ai jamais développé sur Windows Phone), mais il me semble que Windows Phone ne permet pas l'utilisation de FileStream...

    http://msdn.microsoft.com/en-us/libr...=vs.95%29.aspx

    Platform Notes

    Silverlight for Windows Phone

    This type is present to support the .NET Compact Framework infrastructure in Silverlight for Windows Phone, and it is not intended to be used in your application code.
    Je crois qu'il faut utiliser IsolatedStorageFileStream à la place

Discussions similaires

  1. Convertir JtextArea en image
    Par scred56 dans le forum Composants
    Réponses: 1
    Dernier message: 27/04/2008, 23h51
  2. convertir .avi en images
    Par sylvain.cool dans le forum Vidéo
    Réponses: 1
    Dernier message: 20/07/2007, 21h55
  3. Convertir texte en image
    Par arnaud_verlaine dans le forum Flash
    Réponses: 10
    Dernier message: 26/09/2006, 09h15
  4. [FLASH 8] Convertir swf -> fichier image
    Par mic79 dans le forum Flash
    Réponses: 7
    Dernier message: 12/05/2006, 11h59
  5. [Graphique] Convertir pdf en image
    Par anykeyh dans le forum Graphisme
    Réponses: 5
    Dernier message: 18/01/2006, 16h51

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