多数の画像をオーバーレイしたい(PNG、すべて同じサイズ、透明度あり)。これまでのところ、私のコードは次のとおりです。
bg = New Bitmap(My.Resources.blue)
g = Graphics.FromImage(bg)
overlay = New Bitmap(tree.Image)
g.DrawImage(overlay, 0, 0)
ここで、もう 1 つの画像をオーバーレイしたいと思いますが、これはテキスト ボックスからのユーザーの入力に基づいています。したがって、その画像を取得するには、ユーザーの入力を取得して、それぞれのリソース ファイルを取得する必要があります。
私は次のようにします:
Dim stream As IO.Stream = Nothing
Dim path As String = Assembly.GetName().Name.ToString() + "." + inputbox.text + ".png"
stream = Assembly.GetManifestResourceStream(path)
そして、これは画像ストリームを正しく見つけます。
ここで、画像を重ねてみます。
overlay = New Bitmap(stream)
g.DrawImage(overlay, 0, 0)
ただし、このオーバーレイは機能していないようです。
私がこのようなことをした場合:
overlay = New Bitmap(My.Resources._5)
g.DrawImage(overlay, 0, 0)
オーバーレイは正しく機能します。
質問は次のとおりです。オーバーレイがストリームから機能しないのはなぜですか?
編集:オーバーレイは実際には機能することがわかりましたが、実際のサイズではなく拡大された画像をオーバーレイしているようです。これには何らかの理由がありますか?