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 :

Image et Canvas [Débutant]


Sujet :

Windows Phone .NET

  1. #1
    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 : 52
    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 Image et Canvas
    Hello,

    je but sur le problème suivant:

    J'ai des images dans mon projet qui ont la propriété Build sur Content afin de pouvoir les afficher dans les ListBox.

    Cependant, je souhaites utiliser ces images pour les afficher dans un Canvas et c'est là que je coince.

    Je ne vois pas comment faire pour les charger dans un stream afin de les mettre dans un contrôle Image.

    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        System.Windows.Media.Imaging.BitmapImage MonBitmapImage = new System.Windows.Media.Imaging.BitmapImage();
                        MonBitmapImage.SetSource(...);
                        System.Windows.Controls.Image MonImage = new System.Windows.Controls.Image();
                        MonImage.Source = MonBitmapImage;
                        MonImage.Margin = new System.Windows.Thickness(10,10,0,0);
                        this.Canvas.Children.Add(MonImage);
    Au passage je positionne l'image mais je ne suis pas sur que ce soit la bonne méthode vu que j'envisage de pouvoir la déplacer par la suite.

    Merci

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Bonjour, voici le code à utiliser pur charger un BitmapSource depuis un stream :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                BitmapImage bmp = new BitmapImage();
                bmp.BeginInit();
                bmp.StreamSource = stream;
                bmp.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
                bmp.CacheOption = BitmapCacheOption.OnLoad;
                bmp.EndInit();
                bmp.Freeze();
    CreateOptions est bien sûr optionnel. Par contre gare à IgnoreCache qui provoque un bug dans ce cas précise. Enfin si le format est connu à l'avance on doit pouvoir faire plus rapide en instanciant directement le décodeur correspondant.

  3. #3
    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 : 52
    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
    Merci.

    mais comment on fait un stream depuis une image qui est resources et avec la propriété Build à Content ?

  4. #4
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Il suffit de faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Assembly.GetExecutingAssembly().GetManifestResourceStream("MonEspaceDeNoms.MonImage.jpg");

  5. #5
    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 : 52
    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
    Bon j'ai fait ça mais le stream est à null

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.IO.Stream MonIOStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("MonProjet.MonImage.png");
    Y a pas un Load() comme avant ?

  6. #6
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Ah ! Tu as mis la proprio à "Content" pas "Embedded Resource". Dans ce cas Application.GetContentStream()

  7. #7
    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 : 52
    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
    Application n'existe pas sur WindowsPhone....

    et dans App.Current il n'y a pas de GetContentStream()

    J'ai une piste mais ça renvoie toujours null

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    System.Windows.Media.Imaging.BitmapImage MonBitmapImage = new System.Windows.Media.Imaging.BitmapImage();
     
    System.Windows.Resources.StreamResourceInfo ItemStreamResourceInfo = App.GetResourceStream(new Uri(CurrentItem.Level.ImageURL,UriKind.Relative));
     
    MonBitmapImage.SetSource(ItemStreamResourceInfo.Stream);

  8. #8
    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 : 52
    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
    Bon j'ai fini par trouver une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    System.Windows.Media.Imaging.BitmapImage MonBitmapImage = new System.Windows.Media.Imaging.BitmapImage(new Uri(CurrentItem.Level.ImageURL, UriKind.Relative));
    System.Windows.Controls.Image MonImage = new System.Windows.Controls.Image();
    MonImage.Source = MonBitmapImage;
    MonImage.Margin = new System.Windows.Thickness(10,10,0,0);
    this.Canvas.Children.Add(MonImage);
    en revanche pour positionner l'image sur le canvas le seul moyen est Margin ?

  9. #9
    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 : 52
    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
    Bon ben il est 21h18 et cette solution ne fonctionne plus alors que je n'ai rien touché au code !!!!


    J'ai trouvé.....

    C'était mes yeux qui se croisent

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

Discussions similaires

  1. image dans canvas ne s'affiche pas
    Par erca57 dans le forum Tkinter
    Réponses: 7
    Dernier message: 04/03/2014, 07h21
  2. [API HTML5] Réalisation d'un loader pour précharger les images avec canvas
    Par scandinave dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/06/2013, 19h57
  3. [API HTML5] position image sur canvas
    Par dragonno dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/03/2013, 12h40
  4. Image et canvas
    Par Haruko dans le forum Tkinter
    Réponses: 0
    Dernier message: 19/04/2009, 15h30
  5. Problème chargement d'une image dans canvas
    Par Hujii dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 28/04/2008, 21h33

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