Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "

    Public Sub New()
        MyBase.New()

        ' この呼び出しは Windows フォーム デザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後に初期化を追加します。

    End Sub

    ' Form は dispose をオーバーライドしてコンポーネント一覧を消去します。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Windows フォーム デザイナで必要です。
    Private components As System.ComponentModel.IContainer

    ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。
    ' Windows フォーム デザイナを使って変更してください。  
    ' コード エディタは使用しないでください。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12)
        Me.ClientSize = New System.Drawing.Size(152, 150)
        Me.Name = "Form1"
        Me.Text = "Form1"

    End Sub

#End Region

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)

        'Graphicsオブジェクトの取得
        Dim g As Graphics
        g = e.Graphics

        '背景となるイメージの描画
        Dim myImage1 As New Bitmap(Application.StartupPath + "\bg.bmp")
        g.DrawImage(myImage1, 10, 10)

        'イメージを読み込み、そのままの状態で描画
        Dim myImage2 As New Bitmap(Application.StartupPath + "\test.bmp")
        g.DrawImage(myImage2, 18, 18)

        'カラーマトリックスの設定（4行4列の要素を0.8に設定）
        Dim matrixItems 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, 0.75F, 0}, _
           New Single() {0, 0, 0, 0, 1}}

        Dim colorMatrix As New System.Drawing.Imaging.ColorMatrix(matrixItems)

        'ImageAttributesを生成
        Dim imageAtt As New System.Drawing.Imaging.ImageAttributes()
        imageAtt.SetColorMatrix( _
           colorMatrix, _
           System.Drawing.Imaging.ColorMatrixFlag.Default, _
           System.Drawing.Imaging.ColorAdjustType.Bitmap)

        'ImageAttributeを設定してイメージを描画する
        '0.75の透明度でイメージを描画
        e.Graphics.DrawImage( _
           myImage2, _
           New Rectangle(18, 82, 48, 48), _
           0, _
           0, _
           48, _
           48, _
           GraphicsUnit.Pixel, _
           imageAtt)

        '0.5の透明度でイメージを描画
        colorMatrix.Matrix33 = 0.5F
        imageAtt.SetColorMatrix( _
           colorMatrix, _
           System.Drawing.Imaging.ColorMatrixFlag.Default, _
           System.Drawing.Imaging.ColorAdjustType.Bitmap)
        e.Graphics.DrawImage( _
           myImage2, _
           New Rectangle(82, 18, 48, 48), _
           0, _
           0, _
           48, _
           48, _
           GraphicsUnit.Pixel, _
           imageAtt)

        '0.25の透明度でイメージを描画
        colorMatrix.Matrix33 = 0.25F
        imageAtt.SetColorMatrix( _
           colorMatrix, _
           System.Drawing.Imaging.ColorMatrixFlag.Default, _
           System.Drawing.Imaging.ColorAdjustType.Bitmap)
        e.Graphics.DrawImage( _
           myImage2, _
           New Rectangle(82, 82, 48, 48), _
           0, _
           0, _
           48, _
           48, _
           GraphicsUnit.Pixel, _
           imageAtt)

    End Sub
End Class
