91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

怎么動態更改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
龙山县| 南充市| 连南| 合肥市| 扎赉特旗| 大竹县| 娱乐| 阳新县| 五原县| 株洲市| 吕梁市| 井冈山市| 山阴县| 瑞安市| 商丘市| 高雄市| 临江市| 怀安县| 商洛市| 册亨县| 汨罗市| 襄樊市| 上栗县| 寿阳县| 石棉县| 昌邑市| 滁州市| 库尔勒市| 县级市| 荥阳市| 丰原市| 吉安县| 康乐县| 伊川县| 嘉义市| 丰镇市| 西林县| 岳普湖县| 嘉兴市| 合江县| 务川|