增加圖片亮度
Introduction
本篇的主旨在於介紹如何增加圖片的亮度。主要的作法就是把圖片上的每個像素的RGB值都增加相同的數值,當數值加完後超過255將以255替換。
範例程式
VB.NET
'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'Author: Larry Nung
'Date: 2009/6/2
'File:
'Memo:
'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
''' <summary>
'''
''' </summary>
''' <remarks></remarks>
Public Class Form1
'***************************************************************************
'Author: Larry Nung
'Date: 2009/6/2
'Purpose:
'Memo:
'***************************************************************************
''' <summary>
''' Handles the Click event of the btnLoad control.
''' </summary>
''' <param name="sender">The source of the event.</param>
''' <param name="e">The <see cref="System.EventArgs" /> instance containing the event data.</param>
''' <remarks></remarks>
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Me.PictureBox1.Image = New Bitmap(OpenFileDialog1.FileName)
End If
End Sub
'***************************************************************************
'Author: Larry Nung
'Date: 2009/6/2
'Purpose:
'Memo:
'***************************************************************************
''' <summary>
''' Brights the bitmap.
''' </summary>
''' <param name="bmp">The BMP.</param>
''' <param name="brighValue">The brigh value.</param>
''' <remarks></remarks>
Private Function BrightBitmap(ByVal bmp As Bitmap, ByVal brighValue As Integer) As Bitmap
For x As Integer = 0 To bmp.Width - 1
For y As Integer = 0 To bmp.Height - 1
Dim color As Color = bmp.GetPixel(x, y)
Dim r As Integer = If(color.R + brighValue > 255, 255, color.R + brighValue)
Dim g As Integer = If(color.G + brighValue > 255, 255, color.G + brighValue)
Dim b As Integer = If(color.B + brighValue > 255, 255, color.B + brighValue)
bmp.SetPixel(x, y, color.FromArgb(r, g, b))
Next
Next
Return bmp
End Function
'***************************************************************************
'Author: Larry Nung
'Date: 2009/6/3
'Purpose:
'Memo:
'***************************************************************************
''' <summary>
''' Handles the Click event of the btnBright control.
''' </summary>
''' <param name="sender">The source of the event.</param>
''' <param name="e">The <see cref="System.EventArgs" /> instance containing the event data.</param>
''' <remarks></remarks>
Private Sub btnBright_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBright.Click
PictureBox1.Image = BrightBitmap(DirectCast(PictureBox1.Image, Bitmap), TrackBar1.Value)
End Sub
End Class
執行結果: