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 Forms Discussion :

Afficher des photos d'un répertoire dans une picturebox


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Afficher des photos d'un répertoire dans une picturebox
    Bonjour,

    Je travaille actuellement sur un album photo via VB 2010.
    J'arrive à afficher un certain nombre de photo via un dossier ressource (voir code) mais j'aimerais que ma picturebox ou j'affiche les images aille directement chercher les photos sans que j'ai besoin de les rajouter dans le code et pouvoir utiliser des boutons pour naviguer entre les photos.
    Merci de votre aide.
    Nom : capture.PNG
Affichages : 1588
Taille : 11,6 Ko

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 46
    Points : 14
    Points
    14

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Tu pourrais créer une liste de tes photos : MyPhotos as List(Of String) renseignée à l'aide de Directory.GetFiles(...)
    Ensuite tu navigues dans ta liste de photos avec PictureBox.Load(MyPhotos.ElementAt(x)) en faisant varier x à l'aide de boutons Précédent et Suivant.

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    ma picturebox ou j'affiche les images aille directement chercher les photos
    Hmm ...le PictureBox ne possédant pas l'art divinatoire de deviner les pensées de l'user, il faut choisir un dossier initial !!!
    Autrement dit voici un code avec un PictureBox et un Button qui fait ce travail :
    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
     
     
    Imports System.IO
     
    Public Class Form1
        Private arrStrings() As String = {}
        Private indexImage As Integer = 0
        Private totalImages As Integer = -1
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
     
            OpenFiles()
            totalImages = arrStrings.Length - 1
            Button1.Enabled = totalImages <> 0
        End Sub
     
     
        ' Bring up a dialog to open a file.
        Private Sub OpenFiles()
            Me.OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
            Me.OpenFileDialog1.DefaultExt = "bmp"
            Me.OpenFileDialog1.Filter = "bmp files (*.bmp)|*.bmp|jpg files (*.jpg)|*.jpg"
            Me.OpenFileDialog1.Multiselect = True
     
            Dim result As DialogResult = OpenFileDialog1.ShowDialog()
            ' OK button was pressed.
            If (result = DialogResult.OK) Then
                arrStrings = OpenFileDialog1.FileNames
                Return
            End If
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            indexImage += 1
            If indexImage > totalImages Then
                indexImage = 0
            End If
            PictureBox1.Image = Image.FromFile(arrStrings(indexImage))
     
     
        End Sub
    End Class
    bon code...

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour, merci pour vos réponses

    Étant un amateur je n'ai pas très bien compris votre programme ^^
    J'utilise une autre form ou j'ai un bouton parcourir et sauvegarder (voir code) pour pouvoir amener des images extérieur et j'aimerais que la picturebox utilise un dossier ou il afficheras ces images.
    En gros que la picture box choisis les fichiers dans un dossier prédéfinis et qu'ils les affichent sans que j'ai besoins de les citer un par un.
    Merci

    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
    Public Class Form3
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Me.Close()
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ofdImage.ShowDialog()
            If ofdImage.FileName > "" Then
                PictureBox1.ImageLocation = ofdImage.FileName
            End If
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            sfdImage.ShowDialog()
            If sfdImage.FileName > "" Then
                PictureBox1.Image.Save(sfdImage.FileName)
            End If
        End Sub
    End Class

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Le mieux serait que tu comprennes les quelques lignes de code proposées par Mabrouki. Ce code est très simple et répond à ta question. Si tu n'y arrives pas, alors effectivement, je ne peux que te conseiller d'aller lire le cours sur http://plasserre.developpez.com/cours/vb-net/ et éventuellement de poser des questions précises sur ce qui t'empêche d'avancer.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Après avoir pris connaissances du code envoyé, est-il possible d'afficher directement les images dans la pictureBox à partir d'un répertoire au lieu de les choisir comme le code indiqué?
    Merci de vos réponse

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Un petit code qui te donnera l'esprit de ce que tu veux. Il faut ajouter des contrôles de gestion d'erreur (dossier inexistant par exemple) mais en gros ça pourrait donner ceci :
    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
     
    // Index de l'image courante 
    private int CurrentIndex = 0;
    // Liste des images du dossier
    private List<String> PictureFiles;
     
    // Initialisation 
    private void Form1_Load(object sender, System.EventArgs e)
    {
        SearchPictureFiles(@"D:\temp");
        LoadCurrentPicture();
    }
     
    // Recherche de la liste des fichiers image (jpg et bmp) du dossier envoyé en paramètres.
    private void SearchPictureFiles(String Path)
    {
        PictureFiles = Directory.GetFiles(Path, "*.*", SearchOption.TopDirectoryOnly)
       .Where(s => s.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase) ||
                   s.EndsWith(".jpg",StringComparison.OrdinalIgnoreCase)  || 
                   s.EndsWith(".png",StringComparison.OrdinalIgnoreCase))
                   .ToList();
    }
     
    // Charge l'image courante 
    private void LoadCurrentPicture()
    {
        if ((CurrentIndex >= 0) && (CurrentIndex < PictureFiles.Count))
            myPictureBox.ImageLocation = PictureFiles.ElementAt(CurrentIndex);
    }
     
    // Image suivante ou première image
    private void btNext_Click(object sender, System.EventArgs e)
    {
        if (CurrentIndex < PictureFiles.Count - 1)
            CurrentIndex++;
        else
            CurrentIndex = 0;
        LoadCurrentPicture();
    }
     
    // Image précédente ou dernière image
    private void btPrevious_Click(object sender, System.EventArgs e)
    {
        if (CurrentIndex > 0)
            CurrentIndex--;
        else
            CurrentIndex = PictureFiles.Count - 1;
        LoadCurrentPicture();
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/02/2017, 21h31
  2. Réponses: 5
    Dernier message: 24/01/2017, 15h51
  3. [Débutant] C# Lire des photos d'un fichier dans une pictureBox
    Par schmitx dans le forum C#
    Réponses: 4
    Dernier message: 27/02/2014, 12h37
  4. Réponses: 4
    Dernier message: 11/07/2007, 19h28
  5. Réponses: 6
    Dernier message: 25/10/2006, 21h00

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