Ich versuche gerade, mehrere Bilder in ein einziges zusammengesetztes Bild zu schichten, das aus mehreren Körperteilen für das Porträt eines Spielers besteht.Warum kann mein GetManifestResourceStream mein Bild nicht finden?
Normalerweise für Bilder aus den Ressourcen und packen sie in eine Picturebox/etc Ich würde einfach ".Image = My.Resources.ResourceManager.GetObject (Dateiname)".
Allerdings muss ich auf eine Bitmap übertragen, die keine Objekte akzeptiert. Ich habe den folgenden Code aus ein paar Google-Ergebnissen gefunden, aber die Datei wird ignoriert, da "Wert von null für 'Stream' nicht gültig ist" und der pHead ist "Nothing". Daher nehme ich an, dass der Code die Datei nicht finden kann.
Die Unterbrechung verursacht in der letzten Zeile des folgenden Codes.
Jede Hilfe oder einfachere Alternativen wäre sehr willkommen.
Dim GenderText As String = ""
Select Case ListCharacter(ActiveChar).Gender
Case eGender.Male : GenderText = "masc"
Case eGender.Female : GenderText = "fem"
End Select
Dim Prefix As String = ""
Dim Suffix As String = ".png"
Dim myAsm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
' Load Head Image
' e.g. prt_fem_head_1_white.png
Dim headImageName As String = "prt_" & GenderText & "_head_" & CharApp.HeadStyle & "_" & CharApp.SkinColour
Dim pHead As Bitmap = New Bitmap(myAsm.GetManifestResourceStream(Me.GetType, headImageName & Suffix))
ps. Fehlt auch mit/ohne Suffix.
Bearbeiten # 1;
Ich habe das Präfix, soweit ich sagen kann, zum Aufenthaltsort des Ressourcenstamms gefunden. Dies funktioniert jedoch immer noch nicht zu einer Variation.
Bearbeiten # 2;
Ich habe den Speicherort der Ressource über seine Eigenschaften überprüft.
"C: \ Benutzer \ CLEO \ Documents \ Visual Studio 2015 \ Projects \ Storytime \ Storytime \ Resources \ prt_fem_head_1_white.png"
ich den Code genauer auf eine vorbestehende Bild brechen versucht habe ich an anderer Stelle als Objekt verwendet haben. Ich habe folgendes versucht; - Storytime.Resources.Hoof.png ::: - Storytime.Resources.Hoof ::: - Resources.Hoof.png ::: - Resource.Hoof ::: - Hoof ::: - Hoof. png ::: –
Nun, Sie tun es falsch. Sie müssten ResourceReader verwenden, um den Manifest-Ressourcenstream zu dekodieren und die Bitmap aus dem Stream auszugraben. Dadurch erhalten Sie immer noch das exakt gleiche Objekt, das ResourceManager.GetObject() bereitstellt, so dass Sie nicht vollständig head sind. Sehr schwer zu erraten, was "Objekte nicht akzeptiert" könnte möglicherweise bedeuten, dass Sie die falsche Frage gestellt haben. –