我陷入两难境地,我需要将位图转换为字节数组,但我需要某种方式来做这件事,为了演示这些位图是单色的,这就是我需要做的:
假设#是RGB值255,255,255的关键,@是RGB值0,0,0。
@@@
@ ##
@#@
我需要转换成这样的东西:
0,0,0
0,255,255
0,255,0
这可能吗?
答案 0 :(得分:1)
首先得到字节:
<强> ImageConverter 强>
public static byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
或记忆流
public static byte[] ImageToByte2(Image img)
{
byte[] byteArray = new byte[0];
using (MemoryStream stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
stream.Close();
byteArray = stream.ToArray();
}
return byteArray;
}
然后将其转换为您想要的多维数组。
byte[][] multi = new byte[height][];
for (int y = 0; y < height; ++y)
{
multi[y] = new byte[width];
// Do optional translation of the byte into your own format here
// For purpose of illustration, here is a straight copy
Array.Copy(bitmapBytes, width * y, multi[y], 0, width);
}