vs窗体用TrackBar进行图片亮度调节c#
时间: 2024-03-08 08:49:54 浏览: 163
跟踪条控件-c#控件使用
在 Windows 窗体上使用 `TrackBar` 控件调整图片亮度的实现方法与使用 `Button` 控件类似,只需要将 `Button` 的单击事件改为 `TrackBar` 的值变化事件。
以下是实现在 Windows 窗体上使用 `TrackBar` 控件调整图片亮度的代码:
```csharp
private void trackBar1_Scroll(object sender, EventArgs e)
{
// 获取当前图片
Bitmap bmp = (Bitmap) pictureBox1.Image;
// 获取亮度调整值(-255 到 255)
int brightness = trackBar1.Value;
// 调整亮度
Bitmap adjusted = AdjustBrightness(bmp, brightness);
// 显示调整后的图片
pictureBox1.Image = adjusted;
}
// 调整图片亮度的方法
private Bitmap AdjustBrightness(Bitmap bmp, int brightness)
{
// 创建亮度调整颜色矩阵
float b = brightness / 255.0f;
ColorMatrix cm = new ColorMatrix(new float[][]
{
new float[] {1, 0, 0, 0, 0},
new float[] {0, 1, 0, 0, 0},
new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {b, b, b, 0, 1},
});
// 创建图像属性并应用颜色矩阵
ImageAttributes ia = new ImageAttributes();
ia.SetColorMatrix(cm);
// 创建调整后的图像
Bitmap adjusted = new Bitmap(bmp.Width, bmp.Height);
Graphics g = Graphics.FromImage(adjusted);
g.DrawImage(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height),
0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, ia);
g.Dispose();
return adjusted;
}
```
在上面的代码中,我们使用 `TrackBar` 控件的 `Scroll` 事件来获取用户调整的亮度值。当用户移动 `TrackBar` 控件时,我们将调用名为 `trackBar1_Scroll` 的方法,该方法获取当前显示的图像并将其传递给名为 `AdjustBrightness` 的方法,该方法使用颜色矩阵调整图像的亮度。最后,我们将调整后的图像重新显示在 `PictureBox` 控件中。
阅读全文