Laden...

Source eines Images per String setzen? (C#)

Erstellt von Lotus vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.957 Views
L
Lotus Themenstarter:in
73 Beiträge seit 2011
vor 13 Jahren
Source eines Images per String setzen? (C#)

Hallo, ich bin noch relativ neu in der Welt von C# und bin nun auf ein Problem gestoßen wo ich einfach nicht weiterkomme.

Ich habe ein Image, welches ich über eine Pfadangabe setzen möchte und am liebsten wär mir das ja so:


myImage.Source = "C:\Bilder\myPicture.gif";

Aber das hat nicht funktioniert. Nach googlen bin ich auf folgendes gestoßen:


myImage.Source = new BitmapImage(new Uri("C:\Bilder\myPicture.gif"));

Doch wenn ich das starten will, sagt er mir das eine Xaml-Exception nicht abgefangen wurde.. Ehrlich gesagt ich hab keine Ahnung was und wo ich das jetzt abfangen müsste, geschweige denn wie..

Außerdem find ich das irgendwie doof die Bilder direkt anzugeben...(User könnten die ja dann einfach ändern in dem sie sie überschreiben)
Kann man nicht irgendwie eine Bibliothek anlegen, in der die Bilder gespeichert sind (möglichst kryptisch) und dann einfacher über diese auf die Bilder zugreifen?

Ich bin für jede Antwort sehr dankbar!

731 Beiträge seit 2006
vor 13 Jahren
Image.FromFile("blablub.gif");
L
Lotus Themenstarter:in
73 Beiträge seit 2011
vor 13 Jahren

So ich habs jetzt probiert, aber leider hat das nicht geklappt.. folgendes hab ich probiert:

myImage.Source = Image.FromFile("pfad.gif");

Weiterhin kommt der Fehler:
Eine implizite Konvertierung vom Typ "System.Drawing.Image" in "System.Windows.Media.ImageSource" ist nicht möglich.

A
118 Beiträge seit 2009
vor 13 Jahren

Hallo,


BitmapImage bmp = new BitmapImage(new Uri("/*dein pfad*/"));
Image img= new Image();
img.Source = bmp;

Mfg
Aratar

L
Lotus Themenstarter:in
73 Beiträge seit 2011
vor 13 Jahren

Danke Dir, es läuft, hatte den Code schon im ersten Post, aber dummerweise hab ich mich bei dem Pfad VERSCHRIEBEN -.-, deswegen hatte er keinen richtigen Pfad gefunden und hat wahrscheinlich mit null probiert etwas zu laden..

Aufjedenfall danke!

L
Lotus Themenstarter:in
73 Beiträge seit 2011
vor 13 Jahren

Entschuldigung für den Doppelpost, aber ich habe noch eine Frage:

Ich habe meine Bilder jetzt als Ressourcen hinzugefügt.
Die Bilder sind nummeriert von
1.jpg - 10.jpg

Gibt es eine Möglichkeit über eine Variable mit dem Namen 1.jpg oder 1 an das Bild ranzukommen? Ich hab mir das so vorgestellt:

Auf eine Ressource würde man ja normalerweise so zugreifen:


BitmapImage bmp = myProject.Properties.Resources.<name>;

Jetzt möchte ich gerne den <namen> durch eine Variable ersetzen, die den Namen erhält. Also in "temp" steht z.B. "1.jpg" oder "1" drin.

Jetzt wäre es toll wenn man irgendwie sagen könnte:


BitmapImage bmp = myProject.Properties.Resources.<temp>;

Geht sowas? Ich hoffe ja 😦

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

Auf eine Ressource würde man ja normalerweise so zugreifen:

  
BitmapImage bmp = myProject.Properties.Resources.<name>;  

Nein, nicht in WPF. Das was du schreibst ist das Ressourcensystem von Windows Forms. Schau dir in der MSDN Lib hier mal an wie man das in WPF macht. Speziell der Abschnitt Content Files

Baka wa shinanakya naoranai.

Mein XING Profil.

L
Lotus Themenstarter:in
73 Beiträge seit 2011
vor 13 Jahren

Hm.. das ist seltsam, ich hab das doch vorhin ausprobiert und das hat sogar geklappt o.O?

Aber selbst wenn ich keine Ressource-Datei sondern eine Content-Datei anlege, würde das denn mit dem "variablen Datennamen" gehen?