将黑白位图转换为布尔数组

本文关键字:布尔 数组 转换 黑白 位图 | 更新日期: 2023-09-27 18:36:59

可能的重复项:
在 C# 中将位图转换为布尔数组的快速方法?

在我的项目中,我有一个资源是黑白位图,我用它来保存一些 4x4 黑白精灵。在我有效地使用这些数据之前,我需要将其转换为 2D 多维(或锯齿状,没关系)布尔数组,false 表示白色,黑色表示 true。

这是我当前的解决方案:

    public Bitmap PiecesBitmap = Project.Properties.Resources.pieces;
    bool[,] PiecesBoolArray = new bool[4, 16]; // 4 wide, 16 high (4 4x4 images)
    for (int x = 0; x < 4; x++)
            {
                for (int y = 0; y < 16; y++)
                {
                    if (PiecesBitmap.GetPixel(x, y) == Color.Black)
                    {
                        PiecesBoolArray[x, y] = true;
                    }
                    else
                    {
                        PiecesBoolArray[x, y] = false;
                    }
                }
            }

由于我将经常调用此函数(使用不同的位图),因此有没有更有效的方法? .GetPixel有点慢,感觉我在这里错过了一些技巧。感谢您的任何建议。

将黑白位图转换为布尔数组

使用Bitmap.LockBits。您可以在网络上找到教程。