如何将3x3像素.bmp转换为3x3字节数组?

时间:2014-11-22 14:17:24

标签: c# .net bitmap

我陷入两难境地,我需要将位图转换为字节数组,但我需要某种方式来做这件事,为了演示这些位图是单色的,这就是我需要做的:

假设#是RGB值255,255,255的关键,@是RGB值0,0,0。

@@@

@ ##

@#@

我需要转换成这样的东西:

0,0,0

0,255,255

0,255,0

这可能吗?

1 个答案:

答案 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);
}