VB.NET语言 制作带滑动条的亮度对比度调节工具

VB.NET阿木 发布于 14 天前 5 次阅读


VB.NET【1】滑动条亮度【2】对比度【3】调节工具实现教程

随着计算机技术的发展,图像处理技术在各个领域得到了广泛应用。在图像处理中,亮度对比度的调节是基本且重要的操作之一。本文将围绕VB.NET语言,结合滑动条控件【4】,实现一个简单的亮度对比度调节工具。

1. 环境准备

在开始编写代码之前,我们需要准备以下环境:

- Visual Studio 2019(或其他支持VB.NET的开发环境)
- .NET Framework 4.5或更高版本

2. 创建项目

1. 打开Visual Studio 2019,创建一个新的Windows窗体应用程序项目。
2. 在项目名称处输入“BrightnessContrastTool”,点击“确定”。
3. 在项目创建完成后,打开窗体设计器。

3. 设计界面

1. 在窗体设计器中,添加以下控件:
- 1个PictureBox控件【5】,用于显示原始图像和调整后的图像。
- 2个TrackBar控件【6】,分别用于调节亮度和对比度。
- 1个Button控件,用于加载图像。

2. 设置控件的属性:
- PictureBox1:Name为PictureBox1,Size为400x300。
- TrackBar1:Name为TrackBar1,Minimum为-100,Maximum为100,Value为0,TickFrequency为10,Orientation为Horizontal。
- TrackBar2:Name为TrackBar2,Minimum为-100,Maximum为100,Value为0,TickFrequency为10,Orientation为Horizontal。
- Button1:Name为Button1,Text为“加载图像”。

4. 编写代码

1. 在Form1.vb中,添加以下代码:

vb
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using OpenFileDialog As OpenFileDialog = New OpenFileDialog()
OpenFileDialog.Filter = "Image Files|.jpg;.jpeg;.png;.bmp"
If OpenFileDialog.ShowDialog() = DialogResult.OK Then
PictureBox1.Image = Image.FromFile(OpenFileDialog.FileName)
End If
End Using
End Sub

Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Dim brightness As Integer = TrackBar1.Value
Dim contrast As Integer = TrackBar2.Value
Dim image As Bitmap = DirectCast(PictureBox1.Image, Bitmap)
Dim result As Bitmap = AdjustBrightnessContrast(image, brightness, contrast)
PictureBox1.Image = result
End Sub

Private Sub TrackBar2_Scroll(sender As Object, e As EventArgs) Handles TrackBar2.Scroll
Dim brightness As Integer = TrackBar1.Value
Dim contrast As Integer = TrackBar2.Value
Dim image As Bitmap = DirectCast(PictureBox1.Image, Bitmap)
Dim result As Bitmap = AdjustBrightnessContrast(image, brightness, contrast)
PictureBox1.Image = result
End Sub

Private Function AdjustBrightnessContrast(image As Bitmap, brightness As Integer, contrast As Integer) As Bitmap
Dim result As New Bitmap(image.Width, image.Height)
Using g As Graphics = Graphics.FromImage(result)
g.DrawImage(image, 0, 0)
End Using

For y As Integer = 0 To result.Height - 1
For x As Integer = 0 To result.Width - 1
Dim pixel As Color = result.GetPixel(x, y)
Dim r As Integer = (pixel.R + brightness) (contrast + 128) / 256
Dim g As Integer = (pixel.G + brightness) (contrast + 128) / 256
Dim b As Integer = (pixel.B + brightness) (contrast + 128) / 256

r = Math.Max(0, Math.Min(255, r))
g = Math.Max(0, Math.Min(255, g))
b = Math.Max(0, Math.Min(255, b))

result.SetPixel(x, y, Color.FromArgb(r, g, b))
Next
Next

Return result
End Function
End Class

2. 解释代码:
- Button1_Click:当点击“加载图像”按钮时,弹出OpenFileDialog【7】对话框,选择要加载的图像文件。
- TrackBar1_Scroll和TrackBar2_Scroll:当滑动条值发生变化时,调用AdjustBrightnessContrast【8】函数调整图像的亮度和对比度,并更新PictureBox1显示调整后的图像。
- AdjustBrightnessContrast:根据输入的亮度和对比度值,调整图像的每个像素值,并返回调整后的图像。

5. 运行程序

1. 在Visual Studio 2019中,按F5键运行程序。
2. 点击“加载图像”按钮,选择要调整的图像文件。
3. 使用滑动条调整亮度和对比度,观察图像的变化。

6. 总结

本文介绍了使用VB.NET语言和滑动条控件实现亮度对比度调节工具的方法。通过调整滑动条的值,可以实时观察图像的亮度和对比度变化。在实际应用中,可以根据需求对代码进行优化和扩展。