Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
サンプルについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2514#CommentId19843
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るきお
 ()
投稿日時
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