投稿者 るきお  () 投稿日時 2008/8/7 21:52:00
C:\Test.bmpというファイルを読み込んでいる部分は、お手持ちの画像ファイルのパスに差し替えてください。 
 
Public Class Form1 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
 
        PictureBox1.Image = Image.FromFile("C:\test.bmp") 
 
    End Sub 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
 
        PictureBox1.Image = Brighten(PictureBox1.Image, -50) 
        PictureBox1.Refresh() 
 
    End Sub 
 
    '■Brighten 
    ''' <summary>画像の明るさを設定する。</summary> 
    ''' <param name="Source">対象の画像</param> 
    ''' <param name="Alpha">明るさ。-255~の範囲で指定。</param> 
    ''' <returns>明るさが設定された画像</returns> 
    Private Function Brighten(ByVal Source As Image, ByVal Alpha As Integer) As Bitmap 
        '▼引数のチェック 
        If IsNothing(Source) Then 
            Throw New NullReferenceException("Sourceに値が設定されていません。") 
        End If 
 
        If Alpha < -255 OrElse Alpha > 255 Then 
            Throw New ArgumentException("Alphaは-255 から255 の範囲で指定してください。") 
        End If 
 
        '▼Sourceのイメージをそのまま描画 
        Dim g As Graphics 
        Dim SourceImage As New Bitmap(Source.Width, Source.Height) 
 
        g = Graphics.FromImage(SourceImage) 
        g.DrawImage(Source, New Point(0, 0)) 
 
        '▼Sourceのイメージの上に白い(黒い)長方形を重ねる 
        Dim MyBrush As SolidBrush 
 
        If Alpha > 0 Then 
            '白い長方形を作成 
            MyBrush = New SolidBrush(Color.FromArgb(Alpha, 255, 255, 255)) 
            g.FillRectangle(MyBrush, Source.GetBounds(GraphicsUnit.Pixel)) 
        Else 
            '黒い長方形を作成 
            MyBrush = New SolidBrush(Color.FromArgb(-Alpha, 0, 0, 0)) 
            g.FillRectangle(MyBrush, Source.GetBounds(GraphicsUnit.Pixel)) 
        End If 
 
        Return SourceImage 
 
    End Function 
 
 
     
End Class