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

C# Discussion :

Afficheur d'images (c#) [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 21
    Par défaut Afficheur d'images (c#)
    Salut,
    J'ai un exercice de c# à réaliser dans le cadre d'un TP, il s'agit de créer un afficheur d'image. Il y a donc 3 parties distinctes : une PictureBox à droite pour afficher l'image sélectionnée, un TreeView (repertoire) en haut à gauche pour sélectionner le dossier et une ListView (fichiers) pour afficher le contenu du dossier choisi.
    Le problème est que j'arrive à ouvrir et sélectionner un dossier mais lorsque je clique dessus, les images qu'il est censé contenir ne s'affiche pas dans la ListView.

    Voici le code du form1.cs :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
     
    namespace WindowsFormsApplication5
    {
        public partial class Form1 : Form
        {
            private ImageList imageList1 = new ImageList();
     
            public Form1() /// Mise en place des éléments qui composent la fenêtre
            {
                InitializeComponent();
            }
     
            private void ouvrirToolStripButton_Click(object sender, EventArgs e)
            {
                /*// Displays an OpenFileDialog so the user can select a Cursor.
                OpenFileDialog opfd = new OpenFileDialog();
                opfd.Filter = "Fichiers JPEG|*.jpg";
                opfd.Title = "Choisir le fichier";
     
                // Show the Dialog.
                // If the user clicked OK in the dialog and
                // a .jpg file was selected, open it.
                if (opfd.ShowDialog() == DialogResult.OK)
                {
                    string filename = opfd.FileName;
                    ChargerImage(filename);
                }*/
                FolderBrowserDialog fld = new FolderBrowserDialog();
                fld.Description = "Choisir le repertoire d'image";
                fld.RootFolder = Environment.SpecialFolder.MyPictures;
                if (fld.ShowDialog() == DialogResult.OK)
                {
                        string filename = fld.SelectedPath;
                        foreach (string f in Directory.GetDirectories(fld.SelectedPath))
                        {
                            TreeNode tn = new TreeNode(f);
                            repertoire.Nodes.Add(tn);
                        }
                }
     
            }
     
            private void repertoire_AfterSelect(object sender, TreeViewEventArgs e)
            {
                ChercherImage(e.Node.Text);
            }
     
     
            private void ChargerImage(string filename) /// Charge l'image dans la "boîte à image"
            {
                pictureBox1.Image = Image.FromFile(filename);
                this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                this.pictureBox1.Text = filename;
            }
     
            private void ChercherImage(string path) /// Affiche l'ensemble des fichiers et leurs icônes lorsqu'un dossier est sélectionné
            {
                fichiers.View = View.LargeIcon;
                imageList1.ImageSize = new Size(80, 60);
                fichiers.LargeImageList = imageList1;
                string[] files = Directory.GetFiles(path); /// Stocke la liste des fichiers
                foreach (string s in files)
                {
                    if (s.ToUpper().EndsWith("jpg")) /// Contrôle qu'il sagit bien d'une image
                    {
                        Image im = Image.FromFile(s);
                        imageList1.Images.Add(im.GetThumbnailImage(106, 120, null, IntPtr.Zero)); /// Création des miniatures
                        im.Dispose();
                        ListViewItem lw = new ListViewItem(s, imageList1.Images.Count - 1);
                        fichiers.Items.Add(lw);
                    }
                }
            }
     
            private void fichiers_Click(object sender, EventArgs e) /// Sélection du fichier à afficher
            {
                string f;
                if (fichiers.SelectedIndices.Count > 0)
                {
                    f = fichiers.SelectedItems[0].Text;
                    ChargerImage(f);
                }
            }
     
        }
    }

  2. #2
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Bonjour ;

    d'une part assurez vous que vos images sont bien a "JPG" ou non pas "JPEG"

    et d'autre part utilise à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (s.ToUpper().EndsWith("jpg")) /// Contrôle qu'il sagit bien d'une image
                    {}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (Path.GetExtension(s).ToUpper().Equals(".JPG") /*ou bien '.JPEG'*/) /// Contrôle qu'il sagit bien d'une image
                { }
    dans l'attente de votre requête après la modification

  3. #3
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    au lieu de faire un ToUpper il vaut mieux utiliser string.Compare("", "", CompareOptions.OrdinalIgnoreCase)

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 21
    Par défaut
    Merci à vous pour les réponses.
    Néanmoins, j'ai beau utiliser vos solutions, cela ne fonctionne toujours pas.
    Cela peut-il provenir du Form1.Designer.cs que je n'ai quasiment jamais modifié?

  5. #5
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    peut tu faire une point d’arrêté pour le débougage afin de vérifier si votre programme passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (s.ToUpper().EndsWith("jpg")) /// Contrôle qu'il sagit bien d'une image
                    {}
    afin d'identifier est ce que c'est un problème dans l'affichages des images ou bien dans la récupération

  6. #6
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (s.ToUpper().EndsWith("JPG")) /// Contrôle qu'il sagit bien d'une image
                    {}

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 21
    Par défaut
    Pour être honnête je ne maîtrise pas le debugger de visual studio. Pouvez vous m'indiquer la marche à suivre?

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/03/2012, 00h23
  2. Resize d'une image
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 13/07/2008, 22h23
  3. Faire un afficheur d'image
    Par m14w dans le forum Delphi
    Réponses: 5
    Dernier message: 30/07/2006, 20h06
  4. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11
  5. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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