在图片框中显示双数组

时间:2014-01-07 14:33:29

标签: c# bitmap rgb picturebox brightness

我需要在C#

中显示这个双重图片框数组
double[,] Y1 = new double[width, height];//not empty array contain brightness from RGB
 R = new byte [width, height];
 G = new byte [width, height];
 B = new byte [width, height];

Bitmap bmp4 = new Bitmap(width, height);    


for (int x = 0; x < width; x++)
{
    for (int y = 0; y < height; y++)
    {
        Y1[x, y] = (0.39 * R[x,y]) + (0.59 * G[x,y]) + (0.12 * B[x,y]);
        Int32 zz = Convert.ToInt32(Y1[x, y]);

        bmp4.SetPixel(x, y, zz);
    }
}    

pictureBox6.Image=bmp4;

我使用此代码进行显示但是没有工作是否有其他显示数组的方法 图片框中的double(Brightness)(bmp文件)

1 个答案:

答案 0 :(得分:0)

您无法直接从整数转换为颜色。使用Color.FromArgb()可以指定颜色的整数值。

FromArgb()采用32位整数,其中每个字节代表Alpha,Red,Green,Blue(因此为Argb)之一。请记住,如果您想要任何具有超过一半不透明度(Alpha)值的像素,则传递的整数将需要为负值。

如果您的Y1数组中没有任何负值,则需要在执行FromArgb()转换时应用以下内容。

colors[x,y]= Color.FromArgb(zz | (255 << 24))

希望有所帮助。