0
现在,我更倾向于位图及其转换。这次我想将我的位图图像转换为二进制值(1,1,0,0,...,0,1,1)。将位图转换为C#中的二进制数据
我尝试了下面的代码片段,在一些谷歌搜索的帮助下。
string bmpFilePath= @"C:\Sample.bmp";
Bitmap bmp = new Bitmap(bmpFilePath);
short[,] array = new short[bmp.Height, bmp.Width];
Color color;
int binaryVal = 0;
string strBinaryData = string.Empty();
for (int x = 0; x < bmp.Width; x++)
{
for (int y = 0; y < bmp.Height; y++)
{
color = bmp.GetPixel(x, y);
binaryVal = Color.White.ToArgb() == color.ToArgb() ? (short)1 : (short)0;
strBinaryData += binaryVal.ToString();
}
}
//StrBinaryData contains the String of binary values.
我正在使用单色位图获取二进制数据。该代码看起来非常适合我,但是当我尝试使用其中一个API打印图像时,我无法看到确切的图像。
我想确认一下,上面的代码是否足够好。如果是的话,可能我在进一步处理二进制数据时犯了错误。
请帮助我这样做。
获取位图的二进制数据的原因: 我有一个使用的API,它需要一个图像的二进制数据作为输入。 现在我收到了一些错误的结果。只需要检查输入是否正确?
有没有什么办法可以看到它可以帮助你,你说你的代码有效,但你的神秘API不支持它?至少你需要提及api – Sayse
你的阅读图像的代码是OK的。但是,实际存在问题的打印图像代码在哪里?你忘了打印行结尾'\ n'? –
你确定你的API想要一个二进制字符串,比如“0100110101001111111011”吗?还是它要求一个二进制*流*,它实际上是一个'byte []',数组中的每个字节对应8个像素值?你需要向我们展示API。 –