私のアプリケーションには2つ(実際には多くの)PNG(.png)の画像があります。どちらも透明なエリアがあります。.NETを使用して2つのPNG画像を1つの画像に結合する
私のアプリケーションでは、両方の画像を取得し、それらを結合し、結果を画像ボックスに表示したいと考えています。後で結果をボタンで保存したい。
これまでのところ、私は2つの画像を見つけてそれらを組み合わせることができましたが、透明性の問題はうまくいかないようです。つまり、ある画像を別の画像に重ねると、画像の背景が白い箱になっているため、上の画像だけが結果として表示されます。それはない。ここで
は、私のコードのビットです:
Dim Result As New Bitmap(96, 128)
Dim g As Graphics = Graphics.FromImage(Result)
Dim Name As String
For Each Name In BasesCheckList.CheckedItems
Dim Layer As New Bitmap(resourcesPath & "Bases\" & Name)
For x = 0 To Layer.Width - 1
For y = 0 To Layer.Height - 1
Result.SetPixel(x, y, Layer.GetPixel(x, y))
Next
Next
Layer = Nothing
Next
resourcesPath
は、私のリソースフォルダへのパスです。 Bases
はその中のフォルダです。画像の名前はName
です。
ありがとうございます、それは1つのことを除いて動作するようです:画像のプレビューに使用する画像ボックスは、画像の「サイズが変更された、より大きな」バージョンを表示するようです。最後に私はPictureBox.Image =結果を使用しました。なぜ画像がそのように表示されるのか分かりません。 – Voldemort
@Omega:あなたの画像はあなたが書いているビットマップと同じサイズですか? –
はい、ビットマップ "結果"は96x128で、私がテストに使用している2つのビットマップも96x128です。しかし、画像ボックスは2つまたは何か結果をズームするようだ... – Voldemort