正確に何が必要かはわかりませんが、たとえばフォームの不透明度プロパティを %75 に設定するよりも、完全に不透明な PNG を描画することができます。
編集:上記の答えがあなたが望んでいたものではない場合は、背景が透明なPictureBoxを作成し、そのドックを塗りつぶすように設定し、そのコントロールを前面に表示しないでください。画像を表示したいときは、画像を前面に持ってきます。画像の不透明度を(必要に応じて)次のように設定するよりも:
Public Function SetImgOpacity(ByRef imgPic As Image, ByVal imgOpac As Single) As Image
Dim bmpPic As New Bitmap(imgPic.Width, imgPic.Height)
Dim gfxPic As Graphics = Graphics.FromImage(bmpPic)
Dim cmxPic As New ColorMatrix()
Dim iaPic As New ImageAttributes()
cmxPic.Matrix33 = imgOpac
iaPic.SetColorMatrix(cmxPic, ColorMatrixFlag.[Default], ColorAdjustType.Bitmap)
gfxPic.DrawImage(imgPic, New Rectangle(0, 0, bmpPic.Width, bmpPic.Height), 0, 0, imgPic.Width, imgPic.Height, GraphicsUnit.Pixel, iaPic)
gfxPic.Dispose()
iaPic.Dispose()
Return bmpPic
End Function
これで、PictureBox の画像を新しい半透明の画像に設定できます。
編集2:これは良いトリックです
フォームを非表示にし、タイマーを使用して、リソースの「a」が画像である場合にこれを使用します。
Dim x As Graphics = Graphics.FromHwnd(IntPtr.Zero)
x.DrawImage(My.Resources.a, 0, 0)
フォームなしで画面に描画できます。ただし、他の絵を描くと幻想が壊れる可能性があるため、継続的に描く必要があります。