• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

[C#] Bild Ressourcendatei als Stream öffnen

Mr Speicher

Neu angemeldet

Registriert
22 Dez. 2013
Beiträge
83
Hallo ich beschäftige mich gerade mit dem Thema Ressoucendateien hinzufügen, öffnen etc. in Visual Studio 2015 in Verbindung mit C#.

Mir geht es dabei hauptsächlich um eine etwas ältere Lösung die ich gefunden zum öffnen eines Bildes per Stream und ob diese überhaupt noch funktioniert: https://msdn.microsoft.com/de-de/library/aa287676(v=vs.71).aspx

Meine Bildressource möchte ich mit einer PictureBox anzeigen. Was an sich schon mal recht einfach über folgenden Code funktioniert:

[src=csharp]pbTest.Image = Properties.Resources.myTestPicture;[/src]

Wenn ich nun den Code von der oben genannten Microsoft Seite für mich verwende, bekomme ich bei der letzten Zeile folgende Fehlermeldung:
Ein Ausnahmefehler des Typs "System.ArgumentException" ist in System.Drawing.dll aufgetreten.Zusätzliche Informationen: Der Wert null ist für stream ungültig.

Vielleicht hat ja jemand eine Idee woran es genau liegen könnte, ich konnte den Fehler bislang nicht finden.

Microsoft Code:
[src=csharp]System.Reflection.Assembly thisExe;
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream file =
thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg");
this.pictureBox1.Image = Image.FromStream(file);[/src]

Von mir für mein Beispiel angepasst:
[src=csharp]System.Reflection.Assembly myAssembly;
myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream file = myAssembly.GetManifestResourceStream("myAssembly.myTestPicture.jpg");
this.pbTest.Image = Image.FromStream(file);[/src]

Die using-directive System.IO und System.Reflection habe ich auch schon testweise hinzugefügt.


Edit: Danke KaPiTN für die Erklärung.
 
Zuletzt bearbeitet:

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
Du baust Dir da einen String zusammen, aus einem von Dir selber vergebenen Variabel-Namen und dem Namen des Bildes. Das kann nicht funktionieren.

Schau erst einmal ob die Resource überhaupt vorhanden ist. Dazu müßte Build Action-Eigenschaft im Projektmappen-Explorer auf EmbeddedResource für das Bild stehen.

Dann müßtest Du mit

[src=csharp]string[] resourceNames = myAssembly.GetManifestResourceNames();[/src]

den string finden, den Du dann da einträgst (Eines der Einträge in dem Array)

Der Name der Assembly wäre übrigens

[src=csharp]string nameDerAssembly = myAssembly.GetName().Name;[/src]

Das müßte aber eh der Name Deines Namespaces sein, so daß wahrscheinlich Dein String

nameDerAssembly +"Resources.myTestPicture.jpg" lauten müßte.

PS: Das meiste von dem, was ich hier geschrieben habe, steht übrigens bereits auf der Seite, auf die Dein Link verweist.
 
Oben