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

Récuperer le chemin d'une image d'une PictureBox - VB/VBA/VBS - Programmation

Marsh Posté le 26-01-2007 à 18:31:34    

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  :)

Reply

Marsh Posté le 26-01-2007 à 18:31:34   

Reply

Marsh Posté le 27-01-2007 à 18:37:55    

up :o

Reply

Marsh Posté le 28-01-2007 à 12:29:43    

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

Reply

Marsh Posté le 28-01-2007 à 18:20:14    

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

Reply

Marsh Posté le 28-01-2007 à 18:33:42    

ouais et ta fais commen?

Reply

Marsh Posté le 28-01-2007 à 18:41:58    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed