首页主机资讯怎么动态更改PictureBox图片的亮度、对比度或饱和度

怎么动态更改PictureBox图片的亮度、对比度或饱和度

时间2024-06-09 08:14:03发布访客分类主机资讯浏览430
导读:要动态更改PictureBox图片的亮度、对比度或饱和度,可以使用以下步骤: 将PictureBox中的图片转换为Bitmap格式: Bitmap bitmap = new Bitmap(pictureBox1.Image ; 创建...

要动态更改PictureBox图片的亮度、对比度或饱和度,可以使用以下步骤:

  1. 将PictureBox中的图片转换为Bitmap格式:
Bitmap bitmap = new Bitmap(pictureBox1.Image);
    
  1. 创建一个新的Bitmap对象来存储修改后的图片:
Bitmap newBitmap = new Bitmap(bitmap.Width, bitmap.Height);
    
  1. 定义需要修改的亮度、对比度和饱和度值:
float brightness = 0.1f;
     //亮度
float contrast = 1.5f;
     //对比度
float saturation = 1.5f;
 //饱和度
  1. 使用Graphics对象将原始图片绘制到新的Bitmap对象上,并在绘制时应用亮度、对比度和饱和度调整:
using (Graphics g = Graphics.FromImage(newBitmap))
{
    
    ImageAttributes attributes = new ImageAttributes();


    //亮度调整
    float[][] colorMatrixElements = {

        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[] {
brightness, brightness, brightness, 0, 1}

    }
    ;
    
    ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
    
    attributes.SetColorMatrix(colorMatrix);
    

    //对比度调整
    g.DrawImage(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, attributes);
    

    //饱和度调整
    ImageAttributes saturationAttributes = new ImageAttributes();

    saturationAttributes.SetColorMatrix(new ColorMatrix
    {

        Matrix33 = saturation
    }
    );
    

    g.DrawImage(newBitmap, new Rectangle(0, 0, newBitmap.Width, newBitmap.Height), 0, 0, newBitmap.Width, newBitmap.Height, GraphicsUnit.Pixel, saturationAttributes);

}
    
  1. 将修改后的图片显示在PictureBox中:
pictureBox1.Image = newBitmap;
    

通过以上步骤,可以动态更改PictureBox中图片的亮度、对比度和饱和度。您可以根据需要调整brightness、contrast和saturation的值来实现不同的效果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎么动态更改PictureBox图片的亮度、对比度或饱和度
本文地址: https://pptw.com/jishu/678420.html
香港动态IP服务器有什么优点 在PictureBox中实现图片裁剪有哪些技巧

游客 回复需填写必要信息