亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

怎么動態更改PictureBox圖片的亮度、對比度或飽和度

小億
83
2024-05-27 10:44:13
欄目: 編程語言

要動態更改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的值來實現不同的效果。

0
成武县| 元谋县| 织金县| 绵竹市| 泽普县| 合江县| 延吉市| 闻喜县| 新乡市| 阳曲县| 龙海市| 大竹县| 财经| 江孜县| 大同县| 开封县| 延川县| 高碑店市| 新安县| 贵港市| 罗田县| 宜章县| 甘孜县| 固始县| 汝南县| 阿巴嘎旗| 鄱阳县| 克什克腾旗| 大同市| 灵武市| 巩义市| 神池县| 宣汉县| 福州市| 西宁市| 宁波市| 重庆市| 霸州市| 淮北市| 梁平县| 葵青区|