更改论坛应用程序中的像素颜色C#

时间:2013-12-20 00:38:42

标签: c# colors pixel

我正在创建一个非常基本的图像编辑器,并尝试以数字方式设置颜色(R,G,B)的值。例如,这是我的代码片段:

for (int row = 0; row < thePicture.Width; row = row + 1)
{
    for (int col = 0; col < thePicture.Height; col = col + 1)
    {
        Color pixel = thePicture.GetPixel(row, col);

        pixel = Color.FromArgb(5 + pixel.R, 5 + pixel.G, 5 + pixel.B);
        //+5 is making the image darker... I think
        if (pixel.R > 255)//This is used to prevent the program from crashing
        {
            pixel.R = //is this possible? or another way? I am intending
        }             //Make this 255                    
        thePicture.SetPixel(row, col, pixel);
    }
}

请注意它在Windows论坛中。 敬请太高级,非常基本的了解C#。感谢

1 个答案:

答案 0 :(得分:1)

来自 System.Drawing.Color.R属性的MSDN文章。

属性R是只读的(仅定义了getter)。 因此,必须创建一种新颜色。

尝试pixel = Color.FromArgb(pixel.A, Math.Min(255, pixel.R + 5), pixel.G, pixel.B);

阐释:

我们使用之前颜色的A(Alpha),R(红色),G(绿色)和B(蓝色)属性值创建新颜色。

然而,在R的情况下,我们传递调整的R值,而不是传递先前的R值。您可以使用Math.Min(x,y)确保“亮”R值不超过最大255值