Entwickler-Ecke
Multimedia / Grafik - Image über String ansprechen
Rolf1981 - Mo 09.01.12 10:57
Titel: Image über String ansprechen
Hallo zusammen,
ich würde gerne über die Methode DrawImage(Imagename, x, y, höhe, breite); während des Programms immer wieder verschiedene Bilder laden. Diese werden zuvor in den Speicher geladen und der Name des jeweiligen Images liegt außerdem als String vor. Über diesen String würde ich das jeweilige Image dann gerne zeichnen lassen. Kann ich in der obigen Methode "Imagename" über einen String ansprechen?
Danke schonmal!
Th69 - Mo 09.01.12 11:11
Hallo Rolf,
wie lädst (bzw. speicherst) du denn die Bilder?
Am einfachsten wäre, du legst ein Dictionary<string, Image> an und speicherst dann unter dem Namen dann das Bild.
Rolf1981 - Mo 09.01.12 15:35
Hi,
die Bilder liegen als JPEGS oder PNGs in einem Verzeichnis und werden zuerst geladen mit
C#-Quelltext
1: 2: 3: 4:
| Image Berg1 = Image.FromFile("C:\\Berg1.png"); Image Berg2 = Image.FromFile("C:\\Berg2.png"); Image Berg3 = Image.FromFile("C:\\Berg3.png"); |
Gezeichnet wird mit
C#-Quelltext
1:
| Bilder.DrawImage(Berg1, 4000, 1501, 500, 500); |
Nun soll aber jeweils nur ein bestimmter Berg gezeichnet werden. Ich möchte aber - da extrem viele mögliche Bilder - keine ewig lange if-Bedingung. Deshalb soll bei der Draw-Methode "Berg1" durch eine Variable (z.B. ein String) ersetzt werden. Je nach Inhalt des String wird dann der entsprechende Berg gezeichnet.
Moderiert von
Th69: C#-Tags hinzugefügt
Th69 - Mo 09.01.12 17:47
Hallo Rolf,
hast du denn mal meinen Vorschlag mit dem Dictionary ausprobiert?
Alternativ kannst du auch einfach ein 'enum' für die ganzen Bilder definieren und darüber dann zugreifen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| enum Bild { Bild1, Bild2, Bild3, };
Dictionary<Bild, Image> dictImages = new Dictionary<Bild, Image>();
foreach (Bild bild in Enum.GetValues(typeof(Bild))) { Image image = Image.FromFile(Path.Conmbine(path, bild.ToString() + ".png"));
dictImages.Add(bild, image); } |
Und zugreifen auf ein Bild kannst du dann über das Dictionary mit einem konkreten Bild, z.B.
C#-Quelltext
1:
| Image image = dictImages[Bild.Bild1]; |
Rolf1981 - Mo 27.02.12 07:45
Noch ein verspätetes Dankeschön!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!