我正在创建一个非常基本的图像编辑器,并尝试以数字方式设置颜色(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#。感谢
答案 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值