我必须保存一个位图文件,然后访问每个像素的rgb并将每种颜色的像素(即红色,绿色和蓝色)的十进制代码保存在一个单独的矩阵(数组)中。
对于在bmp lmage中隐藏文本文件我需要将每个rgb代码保存在单独的矩阵中... lm寻找有效的方法,这是我的代码
这段代码将会运行,但是我无法在lable的文本中显示每个矩阵的结果。我可以看到每个矩阵的输出吗?
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;
}
}
答案 0 :(得分:0)
从以下页面开始...... 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);
}
然后你可以检查pixelColour的RGB组件。
显然,您需要创建与图像尺寸相同的2D阵列(矩阵)。如果您需要存储单独的RGB组件,那么您将需要一个3D阵列。