Visual Basic.net: Zufallsbild aus einem Ordner, ich kriegs nicht hin =(

Guwange

Grünschnabel
Hallo, ich bin absoluter Anfänger, aber ich will unbendingt ein kleines Programm erstellen womit man aus bestimmten Ordnern (mit Bildern gefüllt) per Zufall ein Bild angezeigt bekommt per Klick auf einen Button.

Ich hab auch schon ein Code dafür gefunden aber ich bekomme es nicht hin in richtig einzubauen, hiermal der Code (Ist nicht von mir):

---------------------------------------------------------------------------------------------------------------------------------

Functions to get random images from a folder


Dim Pics(3) As Image


Private Function RandomImageFromFolder(ByVal DirectoryName As System.String, ByVal SearchOption As System.IO.SearchOption) As System.Drawing.Image
Dim Directory As New System.IO.DirectoryInfo(DirectoryName)
Dim Files() As System.IO.FileInfo = Directory.GetFiles("*.jpg", SearchOption)
If Files.Length > 0 Then
Dim Random As New System.Random
Return System.Drawing.Image.FromFile(Files(Random.Next(0, Files.Length)).FullName)
Else
Return Nothing
End If
End Function

eg... pic(0) = RandomImageFromFolder(My.Computer.FileSystem.SpecialDirectories.MyPictures, System.IO.SearchOption.AllDirectories)



or

Private Function GetRandomImagePath() As String
'========================
'It is possible to call this function so fast that myRnd
'will have the same seed and appear to return non-random
'results. You might want to move this to a class member
'rather than local to this function
'========================
Dim myRnd As New Random()
'========================

Dim myDir As New System.IO.DirectoryInfo(My.Computer.FileSystem.SpecialDirectories.MyPictures)
Dim myFiles() As System.IO.FileInfo = myDir.GetFiles("*.jpg; *.gif")

Dim myRandomFile As String

If Not myFiles.Length.Equals(0) Then
myRandomFile = myFiles(myRnd.Next(myFiles.Length)).FullName
End If
---------------------------------------------------------------------------------------------------------------------------------

Welche Variante is leichter einzubauen für einen Anfänger, und wie verbinde ich diese Funktion mit einem Buttonclick und einer Picturebox wo das Bild dann angezeigt wird?
Und wo gebe ich in diesem Code überhaupt das jeweilige Verzeichniss an (Es sollen mehrere Verzeichnisse werden und jeweils ein anderer Button)

Hoffe einer sieht da durch oder hat eventuell eine bessere Lösung, danke.
 
das eine Sucht nur nach jpg Dateien und das andere nach JPG und GIF aber ansonsten sind se sich gleich.
(Bis auf die Längen prüfung und die Rückgabe (string, Image))

Entscheide selbst ob du nur den Pfad (mit Dateinamen) haben willst oder gleich ein Image Objekt zurück haben willst.
 
Ja danke erstmal, also ich will ein Image Objekt Direkt zurückhaben.
Ich weiss aber nicht wirklich wie ich diesen Code (nehmen wir mal den 2.) in mein Programm einbaue, also wo genau kommt die Angabe zu meinen verzeichnissen hin? (wo die Bilder sind)

Und wie genau verknüpfe ich das mit nem Button und ner Imagebox? (wie gesagt bin absoluter Anfänger).
 
Ich wäre sehr dankbar dafür wenn mir jemand einfach nur den Code für das aktivieren der Random Bildausgabe in eine Picturebox durch klicken eines Buttons zeigen könnte.

Also der Random Code:

Private Function RandomImageFromFolder(ByVal DirectoryName As System.String, ByVal SearchOption As System.IO.SearchOption) As System.Drawing.Image
Dim Directory As New System.IO.DirectoryInfo("F:\Bilder")
Dim Files() As System.IO.FileInfo = Directory.GetFiles("*.jpg", SearchOption)
If Files.Length > 0 Then
Dim Random As New System.Random
Return System.Drawing.Image.FromFile(Files(Random.Next(0, Files.Length)).FullName)
Else
Return Nothing
End If
End Function

Und dann der Code zur Ausgabe:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.PictureBox1 ? Wie gehts weiter?

End Sub

Ich brauch diese Funktion ganz dringend für mein kleines Programm please help :confused:
 
Du könntest dir die MSDN anschauen, du wirst dort oft fündig werden. (Man muss halt wissen, nach was man sucht)
in deinem Fall wird dich
-> http://msdn2.microsoft.com/en-us/library/system.windows.forms.picturebox_members.aspx
und
-> http://msdn2.microsoft.com/en-us/library/system.windows.forms.picturebox.image.aspx
interessieren.

Dort hast du folgendes Beispiel stehen.
Code:
Dim instance As PictureBox
Dim value As Image

value = instance.Image

instance.Image = value

Ich hoffe das hilft dir weiter.
 
Zuletzt bearbeitet:
Das ist mir einfach (noch) zu hoch.

Ich weiss nicht was ich als Instance und Value eingeben soll.

Ist die Instance der RandomImageGenerator?

Es würde mir sehr weiterhelfen wenn anstadt der variablen mir jemand konkret schreiben würde wie der Code ausschaut die RandomImageGenerator Function in die Picturebox auszupucken per Button.

Das ist nervig aber ich hab nunmal (noch) überhaupt keine Ahnung was was ist in VBasic.
Danke.
 
Zurück