私は現在、複数の画像を1つのコンポジットにレイヤーしようとしています。GetManifestResourceStreamで自分の画像を見つけることができないのはなぜですか?
通常、リソースからイメージを取得してピクチャボックス/ etcに配置するために、単純に ".Image = My.Resources.ResourceManager.GetObject(filename)"とします。
しかし、オブジェクトを受け入れないビットマップに転送する必要があります。私はいくつかのGoogleの結果から下のコードを見つけましたが、ファイルは "nullの値が 'ストリーム'には有効ではないというバグがあり、pHeadはNothingです。そのように私はコードがファイルを見つけることができないと推定しています。
以下のコードの最終行にブレークが発生しています。
いずれのヘルプや簡単な選択肢も大歓迎です。
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。また、接尾辞付き/なしのバグもあります。
編集#1;
リソースのルートの所在地に必要なプレフィックスが見つかりました。しかし、それはまだどんなバリエーションにも作用していません。
編集#2;
リソースの場所をそのプロパティでダブルチェックしました。
"C:\ユーザーはプロジェクト\ Storytime \ Storytime \リソース\のprt_fem_head_1_white.png \ Visual Studioの2015 \ CLEO \ドキュメント\" 解決
私は他の場所でオブジェクトとして使用している既存の画像に、より正確にコードを破壊しようとしました。私は後書きを試みました。 - Storytime.Resources.Hoof.png ::: - Storytime.Resources.Hoof ::: - Resources.Hoof.png ::: - Resource.Hoof ::: - 蹄::: - 蹄。 png ::: –
さて、あなたは間違っている。 ResourceReaderを使用してマニフェストリソースストリームをデコードし、ビットマップをストリームから掘り起こす必要があります。それでもResourceManager.GetObject()が提供するオブジェクトとまったく同じオブジェクトが得られます。 「オブジェクトを受け入れない」とは、間違った質問をする可能性があります。 –