2011-01-17 12 views
5

Dies ist meine erste Frage hier.C# - Integrieren von Daten (Bildern) in .exe

Ich habe ein kleines Quiz-Projekt über die 199 Weltstaaten über Visual Studio C# gemacht. Dafür sammle ich alle Flaggen aller Länder und lege sie in einen Ordner - du kannst dir vorstellen, dass ich VIELE gesammelt habe.

Um mein aktuelles Projekt zu starten, benötige ich den Ordner mit all diesen .gif Bildern - andernfalls wird der Start in einem schwerwiegenden Fehler enden. :-(

Meine Frage ist, ob es möglich ist, die Bilder in meine Exe-Datei zu integrieren, so dass ich es ohne diese fiesen Ordner ausführen kann. (Auch wichtig für die zukünftige Projekt mit noch mehr Inhalt!)

Und wenn es möglich ist - wie? Es wäre auch schön, wenn Sie mich wissen lassen, wie man die Bilder verwendet - welche Wege sie haben etc ... =)

Vielen Dank im Voraus!

Robbepop

Antwort

9

Sie können eine Ressourcendatei zu Ihrer Anwendung hinzufügen, indem

Projekt >> Ihre Projekteigenschaften >> Ressourcen >> eine Ressource-Datei erstellen zu gehen.

Sie können dann einfach ein beliebiges Bild zu Ihrer Anwendung hinzufügen und über Ihren Code darauf verweisen. Wählen Sie Images aus der Dropdown-Liste am oberen Rand des Menüs und klicken Sie dann auf Add Resource >> From existing file.

Nachdem Sie Ihre Ressource-Datei gespeichert haben, können Sie Ihre Bilder dann über Code zugreifen, z.

> Image img = 
> YourProject.Properties.Resources.Image1 

jedoch, mit der Anzahl der Bilder, die Sie haben, und was ich würde Sie glauben, verwenden sie für, würde ich vorschlagen, eine Image List verwenden, mit dem Sie alle Ihre Bilder, hinzufügen und auf sie zugreifen über ihren Schlüssel oder Index. z.B.

Image img = imageList1[0]; 

Oder

Image img = imageList1["US"]; 

Dies kann in der Toolbox finden.

3

Jede Baugruppe in .net kann so genannte Ressourcen enthalten. Sie können sie in den Eigenschaften eines Projekts auf der Registerkarte Ressourcen hinzufügen. Danach können Sie über ProjectNameSpace.Properties.Resources auf sie zugreifen.

5

Sie können die Bilder als eingebettete Ressourcen hinzufügen. Verwenden Sie dann den ManifestResourceStream aus der Assembly, um die unformatierten Bytedaten zu extrahieren, und laden Sie sie anschließend als Abbild.

Hinweis: Dies unterscheidet sich von der Antwort/Ansatz von Femaref unten.