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 :

Chargement d'une image avant affichage


Sujet :

Windows Presentation Foundation

  1. #1
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut Chargement d'une image avant affichage
    Bonjour,

    Je charge une image dans un BitmapSource à partir d'un Stream, via la propriété Source.
    Problème, lorsque j'affiche mon Image, ca fait belle lurette que le stream est fermé et ca plante parceque c'est à ce moment là qu'il le charge vraiment.

    L'option de chargement OnLoad n'y change rien.

    Je ne peux pas non plus créer un MemoryStream que je ne fermerai pas, car je ne connais pas la taille du en byte de mon image dans le stream initial.

    Avez-vous des idées ?


    (En passant je vous file un tuyaux, il faut wrapper la classe Stream en conservant la position d'origine du stream pour pouvoir charger correctement l'image depuis un stream dont la position n'est pas à 0 au début, sinon Wpf ne reconnait pas le format).

    Vraiment pas pratique Wpf dès qu'on veut faire des trucs un peu évolué

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Et quelque chose comme ça ne convient pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    using (FileStream stream = new FileStream(path, FileMode.Open))
    {
      image.Source = BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
    }

  3. #3
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Ca marche bien dans mon cas, merci !
    Bon il y a toujours besoin de faire un wrapper lorsqu'on charge une image depuis un stream dont la position n'est pas 0, mais c'est bien monté en mémoire dès le début.

    En revanche et si j'ai bien cormpris ce qu'est une image Frame, autant ca me va personnellement car mes images n'ont qu'une seule frame, autant pour le chargement depuis un stream d'image à plusieurs Frame, le soucis se représentera.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/04/2008, 10h09
  2. récupérer la taille totale d'une image avant chargement
    Par sorenson dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/06/2006, 14h50
  3. Réponses: 2
    Dernier message: 02/09/2005, 20h47
  4. Vitesse de chargement d'une image jpg ?
    Par ybruant dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2004, 20h42
  5. [debutant]Chargement d'une image de mes documents
    Par reineville dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/03/2004, 09h52

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