c# - 将黑白位图转换为 boolean 数组

标签 c# arrays bitmap boolean imaging

Possible Duplicate:
Fast way to convert a Bitmap into a Boolean array in C#?

在我的项目中,我有一个黑白位图资源,我用它来保存一些 4x4 黑白 Sprite 。在我可以有效地使用这些数据之前,我需要将其转换为二维多维(或锯齿状,无关紧要) boolean 数组,其中 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。您可以在网上找到教程。

关于c# - 将黑白位图转换为 boolean 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999652/

相关文章:

c# - C# 的 Matlab exprnd(a,b,c) 模拟?

c# - IIS 应用程序池在 Azure 负载平衡 VM 上崩溃

c++ - 当我在结构中包含多个数组时,我的程序跳过了一堆代码

php - 从多级数组中获取数据

android 将位图转换为缓冲输入流

java - 缩小图像按钮中的位图以避免内存不足

c# - 使用 "graphics.DrawString"后如何提高打印文本质量?

c# - 无状态状态机框架和高 CPU 使用率

c# - 无法加载文件或程序集 'System.Net.Http.Formatting' 或其依赖项之一。该系统找不到指定的路径

javascript - 如何遍历DOM准备树结构数组