中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

怎么動態更改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
海伦市| 鄱阳县| 溆浦县| 乐业县| 博罗县| 平谷区| 全州县| 奇台县| 洛阳市| 饶河县| 普兰县| 霸州市| 盘锦市| 五大连池市| 新昌县| 阳信县| 仁怀市| 南溪县| 江永县| 凤凰县| 金华市| 福海县| 墨玉县| 玛沁县| 三亚市| 伊宁县| 治县。| 全南县| 城固县| 胶州市| 察哈| 周口市| 叶城县| 东明县| 平利县| 嵊州市| 湘乡市| 吉木萨尔县| 瑞金市| 名山县| 昌平区|