Возможный дубликат:
Быстрый способ преобразования растрового изображения в логический массив в C#?
в моем проекте у меня есть ресурс, представляющий собой черно-белое растровое изображение, которое я использую для хранения черно-белых спрайтов 4x4. Прежде чем я смогу эффективно использовать эти данные, мне нужно преобразовать их в двумерный многомерный (или зубчатый, не имеет значения) логический массив, где 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 довольно медленный, и мне кажется, что я упустил какой-то трюк. Спасибо за любые предложения.