반응형
* VBNET 이미지 밝기 조절 (Image Brightness) 예제...
- 사용한 컨트롤 : Button 3개, PictureBox 1개
전체 소스 코드
Form1.vb
Public Class Form1
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Dim ofd As OpenFileDialog = New OpenFileDialog()
ofd.Filter = "JPG Files(*.jpg) | *.jpg"
If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
pictureBox1.Image = New Bitmap(ofd.FileName)
End If
End Sub
Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
'20 씩 밝기 증가
pictureBox1.Image = BrightnessImage(pictureBox1.Image, 20)
End Sub
Private Sub button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button3.Click
'20 씩 밝기 감소
pictureBox1.Image = BrightnessImage(pictureBox1.Image, -20)
End Sub
Private Function BrightnessImage(ByVal imSource As Image, ByVal iBrightness As Integer) As Bitmap
Dim btTmp As Bitmap = New Bitmap(imSource)
Dim cTmp As Color
Dim iR As Integer, iG As Integer, iB As Integer
For iY As Integer = 0 To btTmp.Height - 1
For iX As Integer = 0 To btTmp.Width - 1
cTmp = btTmp.GetPixel(iX, iY)
iR = Math.Max(0, Math.Min(255, cTmp.R + iBrightness))
iG = Math.Max(0, Math.Min(255, cTmp.G + iBrightness))
iB = Math.Max(0, Math.Min(255, cTmp.B + iBrightness))
cTmp = Color.FromArgb(iR, iG, iB)
btTmp.SetPixel(iX, iY, cTmp)
Next
Next
Return btTmp
End Function
End Class
* 예제 결과
- 이미지 파일 열기...
- 밝기 조절 없이 기본 화면
- 밝기 100 정도 된 화면
- 밝기 -100 정도 된 화면
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] 간단한 로또(Lotto) 당첨번호 확인 하기 (0) | 2021.06.17 |
---|---|
[VBNET] 랜덤(Random) 클래스 를 이용한 간단한 로또(Lotto) 번호 생성 (0) | 2021.05.31 |
[VBNET] 프로그램 버전 확인 (Program Version Check) (0) | 2021.01.18 |
[VBNET] 노트북 배터리 정보 (Notebook Battery) (0) | 2020.12.30 |
[VBNET] [WMI] 그래픽 카드 정보(Graphic Card) (0) | 2020.09.30 |