tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: 指定した色を透明色として、全体を半透明での画像の表示
投稿日: 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()

半透明になってくれません。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。