Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1377 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récuperer le chemin d'une image d'une PictureBox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récuperer le chemin d'une image d'une PictureBox

n°1507590
kahn21
Régularité
Posté le 26-01-2007 à 18:31:34  profilanswer
 

Bonjour,
 
j'essaie de réaliser un petit programme (avec VB express 2005) qui affiche simplement des images comme le fait l'aperçu de Windows.
 
Pour cela, j'utilise une fonction qui ouvre un OpenFileDialog et affiche dans la PictureBox1 le fichier sélectionné.
Le problème, c'est que je n'arrive pas à récupérer le chemin de l'image pour le réutiliser dans cette même fonction et une autre.  
 
La valeur retournée dans value est toujours vide, je ne comprends pas pourquoi  :o  
 

Code :
  1. Private Sub opengivenfiles()
  2.         Dim myStream As IO.Stream
  3.         Dim openFileDialog1 As New OpenFileDialog()
  4.         openFileDialog1.InitialDirectory = "c:\"
  5.         openFileDialog1.Filter = "Supported files (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"
  6.         openFileDialog1.FilterIndex = 1
  7.         openFileDialog1.RestoreDirectory = True
  8.         openFileDialog1.Multiselect = False
  9.         If openFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
  10.             myStream = openFileDialog1.OpenFile()
  11.             If Not (myStream Is Nothing) Then
  12.                 ' Insert code to read the stream here.
  13.                 ListView1.Visible = False
  14.                 PictureBox1.Visible = True
  15.                 PictureBox1.Image = Image.FromStream(myStream)
  16.                 myStream.Close()
  17.                 value = Me.PictureBox1.ImageLocation
  18.                 Me.Text = value
  19.             End If
  20.         End If
  21.     End Sub


 
 
 
 
Deuxième problème, j'utilise une fonction qui remplit un ListView affiche les images contenues dans un répertoire.
Le problème, c'est que l'affichage est restraint aux fichiers jpeg :
 

Code :
  1. Dim files() As System.IO.FileInfo = dirInfo.GetFiles("*.jpg" )


 
J'ai essayé de mettre "*.jpg;*.gif;*.png" comme dans la fonction plus haut mais ça fait planter le programme.
 
Comment est ce que je pourrais faire ?
 
Merci  :)

mood
Publicité
Posté le 26-01-2007 à 18:31:34  profilanswer
 

n°1507841
kahn21
Régularité
Posté le 27-01-2007 à 18:37:55  profilanswer
 

up :o

n°1507943
ingenieurc​esi
Posté le 28-01-2007 à 12:29:43  profilanswer
 

tu peux peut etre utiliser ca
 
Sub Macro2()
Dim Myarray(1, 150) As String
Set fs = Application.FileSearch
With fs
   .LookIn = "C:\"
   .SearchSubFolders = False
    .Filename = "*.xls"
    If .Execute() > 0 Then
        For i = 1 To .FoundFiles.Count
            Myarray(1, i) = .FoundFiles(i)
            MsgBox (Myarray(1, i))
            Next i
    End If
End With
End Sub

n°1508002
kahn21
Régularité
Posté le 28-01-2007 à 18:20:14  profilanswer
 

Merci :)
 
mais j'ai utilisé une autre méthode qui fonctionne aussi bien.

n°1508007
ingenieurc​esi
Posté le 28-01-2007 à 18:33:42  profilanswer
 

ouais et ta fais commen?

n°1508010
kahn21
Régularité
Posté le 28-01-2007 à 18:41:58  profilanswer
 

Code :
  1. For Each d In System.IO.Directory.GetDirectories(value)
  2.             If i = 0 Then
  3.                 d2 = System.IO.Directory.GetParent(d).ToString
  4.                 i = i + 1
  5.             End If
  6.             If Not (d Is Nothing) Then
  7.                 Dim f2 As String
  8.                 For Each f2 In System.IO.Directory.GetFiles(d)
  9.                     Dim ext As String = New System.IO.FileInfo(f2).Extension
  10.                     If ext = ".jpg" Or ext = ".gif" Or ext = ".bmp" Or ext = ".png" Then
  11.                         count += 1
  12.                         Dim item As New ListViewItem
  13.                         item.Text = f2
  14.                         item.SubItems.Add((5).ToString)
  15.                         ListView1.Items.Add(item)
  16.                     End If
  17.                 Next
  18.             End If
  19.         Next
  20.         Dim f As String
  21.         If Not (d2 Is Nothing) Then
  22.             For Each f In System.IO.Directory.GetFiles(d2)
  23.                 Dim ext As String = New System.IO.FileInfo(f).Extension
  24.                 If ext = ".jpg" Or ext = ".gif" Or ext = ".bmp" Or ext = ".png" Then
  25.                     count += 1
  26.                     Dim item As New ListViewItem
  27.                     item.Text = f
  28.                     item.SubItems.Add((5).ToString)
  29.                     ListView1.Items.Add(item)
  30.                 End If
  31.             Next
  32.         End If


J'ai séparé le chargement de la liste en deux parties puisque seules les images des sous-dossiers étaient chargés.
Le seul problème c'est que si le dossier sélectionné ne contient pas de sous-dossier, le programme plante.
Mais bon, j'y connais pas grand chose en VB donc ça tient plus du bricolage que de la programmation.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récuperer le chemin d'une image d'une PictureBox

 

Sujets relatifs
Convertir un chemin windows en chemin linuxRécupérer le résultat d'une fonction javascript dans variable php
Récupérer la console sous Visual Studioredimension image automatique
afichage d'une imageRécupérer la date et l'heure du système en javascript
alignement texte et imageProblème pour fixer l'image de fond
Background imageSuprimé un fichier totalement du dd, sans pouvoire le récupérer
Plus de sujets relatifs à : Récuperer le chemin d'une image d'une PictureBox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR