Gleichzeitiges Darstellen mehrerer Bilder

AccAkut

Grünschnabel
Guten Tag die Herrschaften,

ich möchte mehrere Bilder auf einer Oberfläche ausgeben.Diese sollen zum Beispiel in 4 Gruppen unterteilt sein.
In Gruppe 1 existiert ein Bild, in Gruppe 2 ebenso, in Gruppe 3 existiert kein Bild. Dafür gehören zu Gruppe 4 gleich 3 Bilder.

Also es kann sein das 1 Bild oder mehrere Bilder zu einem Them existireren.
Habe mir überlegt, dass ich einfach erstmal 4 Pictureboxes auf die Oberfläche knall und die dann fülle. Nur was mach ich wenn mehreere Bilder habe die zusammengehören. Kann man irgendwie ne Liste (listview) anlegen wo man zum Beispiel 3 Bilder in Miniansicht durchscrollt und dann bei einem Klick das ausgewählte größer wird...

Geht das und wenn ja,wie?

Oder habt ihr noch andere Ideen im Quick and Dirty Stil. (Müsste im Hintergrund abfragen ob noch mehr Bilder existieren und dann übr ne Scrollbar in ein und die selbe Picturebox immer das neue hineinladen.)

Ach manno bin verbittert...

Vielen Dank!
 

Norbert Eder

Erfahrenes Mitglied
Was soll denn das Endergebnis von dem sein, was du dir vorstellst? Bis jetzt kann ich mir darunter noch kein eigenes Bild malen, ergo auch etwas schwer mit Hilfe.
 

AccAkut

Grünschnabel
Sagen wir es existiert in einem Verzeichnis test1 eine Datei X-100_001.jpg
in einem anderen Verzeichnis test2 existiert eine Datei X-100_001.jpg und eine X-100_002.jpg

Die Datei aus test1 könnte ich z.B. in einer Picturebox darstellen kein Ding. Nur was mache ich mit den beiden Dateien aus dem Ordner test2, die quasi schon zusammen gehören.

Das ganze soll in unterschiedlichen Quadranten dargestellt sein, und es geht darum für jedes Bild ne Note abzugeben. Deshalb sollen möglichst alle Bilder einer Gruppe/eines Verzeichnisses unmittelbar nebeneinander/zusammen dargestellt werden. Die beiden Bilder aus test2 gehören zusammen und bekommen nur eine Note.

Ich will mir dann, die in diesem Beispiel, 3 Bilder anschauen und das besste mit einem extra Gummipunkt versehen. Das heißt jedes Bild bekommt eine Bewertung dann gibt es ein OK Button und dann kommt eine neue Anzahl "zusammengehörige" Bilder (z.B.: X-200_001).

Hoffe jetzt wurde das noch etwas klarer...
 

Norbert Eder

Erfahrenes Mitglied
Schon klar.

Du könntest pro Gruppe ein Panel verwenden. Jedem Panel fügst du einfach dynamisch pro Bild eine PictureBox hinzu. Beispiel:
Code:
string strDirectory = @"C:\temp";
string[] files = Directory.GetFiles(strDirectory, "*.jpg");

for (int i = 0; i < files.Length; i++)
{
    PictureBox pb = new PictureBox();
    pb.Image = Image.FromFile(files[i]);
    pb.SizeMode = PictureBoxSizeMode.Zoom;
    pb.Height = 200;
    pb.Location = new Point(0, 210 * i);

    panel1.Controls.Add(pb);
}

Du musst natürlich das jeweilige Verzeichnis auswählen. Mit Größen und so musst du sehen, ich weiß nicht in welchem Format diese vorliegen. Die entsprechenden Eigenschaften hab ich jedoch verwendet, die du dir ansehen musst. Eventuell empfiehlt es sich noch, beim Panel die ScrollBar zu aktivieren (AutoScroll-Eigenschaft des Panels auf true setzen).
 

AccAkut

Grünschnabel
mal auf VB.ne umgemodelt würde das dann so aus sehen (meiner meinung nach)


Code:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        Dim i As Integer
        Dim odir As New System.IO.DirectoryInfo("C:\Bilder")
        Dim ofiles As System.IO.FileInfo() = odir.GetFiles("*.jpg")

        For i = 0 To ofiles.Length - 1

            PictureBox1.Image = Image.FromFile(ofiles(i).DirectoryName & "\" & ofiles(i).ToString)
            Panel1.Controls.Add(PictureBox1)

        Next

    End Sub


Hab den Code grade noch mal leicht geändert. Er zeigt das Bild in der Box an nur immer irgendwie genau eins über dem anderen.
Nein noch anders, der kopiert einmal die Picturebox in das Panel und dann wird jedesmal das Bild, quasi immernoch in der Picturebox aber nun im Panel getauscht... Will doch viele davon :)

Mir aufgefallen ist, dass man den Directoryname doch jedes Mal voranstellen muss. Aber das ist halt so gell....
 
Zuletzt bearbeitet: