Bild/Graphik in C# einbinden

Wer kann mir sagen, wie ich Graphik mit ca 500x300px (am besten jpeg) in eine C# Anwendung einbinden kann?
Ich möchte die Graphik als Hintergrund einer Form Verwenden (Instanz der Klasse Image) aber sie *nicht* aus einer Datei laden, sondern direkt in die Assembly hineinbinden. Die Graphik-Datei soll also nicht extra mitgeliefert werden müssen.

Viele Grüße,
Klaus!

Hi,
wenn du das Bild zu deinem Projekt hinzufügst und es als lokale Ressource in dein Form importierst, dann kompiliert er es mit in die Anwendung.

Was nutzt du für eine Entwicklungsumgebung, dann könnte ich dir es evt. genauer sagen wie es geht ?

mfg
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,
wenn du das Bild zu deinem Projekt hinzufügst und es als
lokale Ressource in dein Form importierst, dann kompiliert er
es mit in die Anwendung.

Was nutzt du für eine Entwicklungsumgebung, dann könnte ich
dir es evt. genauer sagen wie es geht ?

mfg
Martin

hmm… das hatte ich probiert.
Ich nutze VisualStudio 2005.

Danke!

Hallo nochmal,

Hi,
wenn du das Bild zu deinem Projekt hinzufügst und es als
lokale Ressource in dein Form importierst, dann kompiliert er
es mit in die Anwendung.

Was nutzt du für eine Entwicklungsumgebung, dann könnte ich
dir es evt. genauer sagen wie es geht ?

mfg
Martin

hmm… das hatte ich probiert.
Ich nutze VisualStudio 2005.

Danke!

Also du müßtest nur zu deinem Projekt folgendes tun.
„hinzufügen“ - „vorhandenes Element“
jetzt suchst du dein Bild aus.
Damit es übersichtlich ist evt in einen eigenes Ordner.

Dann gehst du im Designer auf dein Form un gehst auf BackgroundImage.
Hier „lokale Ressource“ und „importieren“
Jetzt suchst du das Bild in deinem Projektordner das er dorthin kopiert hat.

Das sollte es schoin gewesen sein.
mfg
Martin

Also du müßtest nur zu deinem Projekt folgendes tun.
„hinzufügen“ - „vorhandenes Element“
jetzt suchst du dein Bild aus.
Damit es übersichtlich ist evt in einen eigenes Ordner.

Dann gehst du im Designer auf dein Form un gehst auf
BackgroundImage.
Hier „lokale Ressource“ und „importieren“
Jetzt suchst du das Bild in deinem Projektordner das er
dorthin kopiert hat.

Das sollte es schoin gewesen sein.
mfg
Martin

Ok, aber wie kann ich mehrer Bilder einbinden? Entweder nicht nur für das Background Image, oder um verschiedene Backgroundimages verwenden zu können?

Lösungsansatz
Hi,

Ok, aber wie kann ich mehrer Bilder einbinden? Entweder nicht
nur für das Background Image, oder um verschiedene
Backgroundimages verwenden zu können?

Eine Möglichkeit wäre folgende.
Lege einen Ordner an mit deinen Bildern.
Als Eigenschaft „Buildvorgang“ - „Eingetettete Ressource“

Und im Code …

Assembly ass = Assembly.GetExecutingAssembly();
string[] tmp = ass.GetManifestResourceNames();

foreach (string pp in tmp)
{
//auf Namen, Ordner oder Dateiendung untersuchen
if (pp.EndsWith(„jpg“))
{
Stream stream = ass.GetManifestResourceStream(pp);
Image bmp = Image.FromStream(stream);
//zum Beispiel
this.BackgroundImage = bmp;
}
}

Könntest du auf ein Load Event machen und dann alle Bilder in eine Arraylist oder so speichern.
Dann hättest du sie in der Anwendung zur Verfügung.

Eine Andere Möglichkeit wäre eine eigene Assembly mit nur den Bildern drin zu machen.
Assembly dann einbinden und in deiner Anwendung statt
Assembly ass = Assembly.GetExecutingAssembly();
einfach
Assembly ass = Assembly.GetAssembly(…);
nehmen.
Der Rest bleibt gleich.

Dann könntest du Bilder tauschen oder ersetzen ohne deine Anwendung neu zu kompilieren.
Du müßtest nur die Bildassembly ändern und neu bilden.

Hoffe das die Tipps dir geholfen haben.

mfg
Martin

1 Like