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 :

WPF et image


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut WPF et image
    Bonjour,

    je souhaite réalisé une application de traitements des images.

    Pour cela je souhaite faire une interface en WPF affichant une image et permettant de la sauvegarder et une partie traitement en C++.

    Pour ma partie interface je cherche depuis plus d'une semaine comment réaliser les fonctions suivantes: ouverture, sauvegarde, zoom et transfer vers un buffer de unsigned long ou char (enciennement getpixel ou setpixel).

    Pour le moment, je me suis mélanger entre Image.source, bitmapsource,et bitmapframe.

    J'ai inserer dans mon interface une image dans le fichier xaml. Maintenant, j'ai un problème comment gérer cette image pour réaliser mes fonctions citées plus haut ?

  2. #2
    Membre expérimenté

    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
    Par défaut
    Je ne peux pas te répondre en détail mais ta question me fait penser à la classe WriteableBitmap. Essaye de regarder de ce côté là :-)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut
    J'ai pour le moment régler les fonctions de zooms en utilisant directement la class image.

    Pour ma fonction ouvrir, j'ai pour le moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
                dlg.Filter = "Tous les fichiers images|*.bmp;*.jpg;*.gif;*.png|Bitmap Windows ou OS/2(*.bmp)|*.bmp|Format JPEG(*.jpg)|*.jpg|Format GIF(*.gif)|*.gif|Portable Network Graphic(*.png)|*.png";
                dlg.DefaultExt = ".bmp";
                Nullable<bool> result = dlg.ShowDialog();
                if (result == true) 
                {
                    string filename = dlg.FileName;
                    BitmapImage myImageStream = new BitmapImage();
                    myImageStream.BeginInit();
                    myImageStream.StreamSource = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
                    myImageStream.EndInit();
                    IVSImage.Source = myImageStream;
                }
    Je cherche comment sauvegarder l'image.

  4. #4
    Membre expérimenté

    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
    Par défaut
    Tu peux regarder du côté de la classe JpefBitmapEncoder qui te permet de sauvegarder ton image en JPEG (regarde la partie exemple de ce lien pour voir comment faire au niveau du code). Il existe d'autre encodeurs pour sauvegarder en PNG, BMP...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut
    Merci pour ces information Jérem22

    ma fonction sauvegarde ressemble à:

    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
                Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
                dlg.DefaultExt = ".bmp";
                dlg.Filter = "Bitmap Windows ou OS/2(*.bmp)|*.bmp|Format JPEG(*.jpg)|*.jpg|Format GIF(*.gif)|*.gif|Portable Network Graphic(*.png)|*.png";
                Nullable<bool> result = dlg.ShowDialog();
                if (result == true)
                {
                    string filename = dlg.FileName;
                    FileStream stream = new FileStream(filename, FileMode.Create);
                    RenderTargetBitmap rtb = new RenderTargetBitmap((int)IVSImage.Source.Width, (int)IVSImage.Source.Height, 96, 96, PixelFormats.Pbgra32);
                    rtb.Render(IVSImage);
                    JpegBitmapEncoder bmpencoder = new JpegBitmapEncoder();
                    bmpencoder.Frames.Add(BitmapFrame.Create(rtb));
                    bmpencoder.Save(stream);
                    stream.Close();
                }
    Il me reste deux chose à régler la première la taille de l'image recopier ne correspond pas à l'original j'ai un facteur constant entre les 2 images.
    Les propriétés de l'image affiche une taille nulles ( ce qui est érronnés)

    Comment corrigés ce problème ?

    Comment reconnaitre l'extension à partir de la boite de dialogue ?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par titou45 Voir le message
    Comment reconnaitre l'extension à partir de la boite de dialogue ?
    A partir de dlg.FileName, tu peux utiliser la méthode GetExtension pour connaitre l'extension.

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

Discussions similaires

  1. [WPF] Binding Image de base de données
    Par DotNET74 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 02/08/2010, 06h56
  2. [WPF / WCF] Image pas net
    Par NeoKript dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 02/06/2010, 13h05
  3. wpf Background Image
    Par Agnès22 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 24/11/2009, 13h17
  4. [WPF] Ajouter image dans treeview xaml
    Par chris81 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 04/02/2008, 10h06
  5. [3.0][WPF][C#] Images vectorielles
    Par psyclik dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 16/11/2006, 10h21

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