タイトル | : Re^2: 指定した色を透明色として、全体を半透明での画像の表示 |
記事No | : 5292 |
投稿日 | : 2007/04/05(Thu) 23:26 |
投稿者 | : なゆた |
説明が悪かったですね。
ピクチャボックスにビットマップを表示するときに 例えば、白を透過色にして、 尚且つビットマップ全体を半透明にしたいのです。
Dim bmp As Bitmap = New Bitmap("c:\00aq4.bmp") Dim g As Graphics 'Graphics オブジェクトを作成 g = PictureBox1.CreateGraphics 'ビットマップの透明色を指定 bmp.MakeTransparent(Color.White)
' ビットマップ内のすべてのピクセルに共通する透過度を定義します。 Dim transparency As Single = 0.5 ' (4,4)の位置に透過値がある5x5の行列を作成します。 Dim values()() As Single = {New Single() {1, 0, 0, 0, 0}, _ New Single() {0, 1, 0, 0, 0}, _ New Single() {0, 0, 1, 0, 0}, _ New Single() {0, 0, 0, transparency, 0}, _ New Single() {0, 0, 0, 0, 1}} ' 行列を使用して、新しいColorMatrixオブジェクトを初期化します。 Dim colMatrix As New ColorMatrix(values) ' ImageAttributesオブジェクトを作成して、その色の行列を割り当てます。 Dim imageAttr As New ImageAttributes() imageAttr.SetColorMatrix(colMatrix, ColorMatrixFlag.Default, _ ColorAdjustType.Bitmap)
'' 指定したImageAttributesオブジェクトを使用して、ビットマップを描画します。 'g.DrawImage(bmp, New ,Rectangle(200, 20, bmp.Width, bmp.Height) _ ' 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, imageAttr) ''指定した位置にImage オブジェクトを描画 g.DrawImage(bmp, 0, 0) 'リソースを解放します g.Dispose() bmp.Dispose()
半透明になってくれません。
|