从图像中提取RGB信息到数组中

本文关键字:数组 信息 提取 图像 RGB | 更新日期: 2023-09-27 18:03:07

我必须保存一个位图文件,然后访问每个像素的rgb,并将每个像素颜色(即红、绿、蓝)的十进制代码保存在一个单独的矩阵(数组)中。

为隐藏文本文件在bmp图像我需要保存每个rgb代码在单独的矩阵…我在寻找高效的方式,这是我的代码

这段代码将运行,但我不能在标签的文本中显示每个矩阵的结果。我怎样才能看到每个矩阵的输出呢?

 Bitmap bmp1 = new Bitmap(@"D:a.jpg");
        pictureBox1.Image = bmp1;
        Color col = new Color();
        int w = Int32.Parse(bmp1.Width.ToString());
        int h = Int32.Parse(bmp1.Height.ToString()); 
        int[,] redstr = new int[w,h];
        int[,] greenstr = new int[w, h];
        int[,] bluestr = new int[w, h];
        int red = 0, green = 0, blue = 0;
        for (int i = 0; i < w; i++)
        {
            for (int j = 0; j < h; j++)
            {
                col = bmp1.GetPixel(i, j);
                red = col.R;
                green = col.G;
                blue = col.B;
                redstr[i, j] = red;
                greenstr[i, j] = green;
                bluestr[i, j] = blue;
            }
            }

从图像中提取RGB信息到数组中

从下面的页面…https://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel.aspx

你可以使用像这样的东西来访问图像的每个像素…

private void GetPixel_Example(PaintEventArgs e)
{
// Create a Bitmap object from an image file.
Bitmap myBitmap = new Bitmap("YOURFILENAME.jpg");
// Get the color of a pixel within myBitmap.
Color pixelColor = myBitmap.GetPixel(50, 50);
}

然后你可以检查你的RGB组件的pixelcolor。

显然,您将需要创建一个2D数组(矩阵)与您的图像相同的尺寸。如果你需要存储单独的RGB组件,那么你将需要一个3D数组。