我正在为我的方形瓷砖平台游戏制作一个 2d 地图编辑器,当我意识到我真的可以使用图像编辑器来重新绘制相邻像素等等,所以我想我应该尝试通过一个应用程序来读取绘制的关卡然后将其转换为轻量级格式。
我不确定是否必须使用位图格式,但我想,读取特定像素会比使用 PNG 更容易。
所以我的目标是打开一个图像,遍历每个像素,寻找适合我的平铺方案的颜色,并将相应的平铺放入块数组中。
注意:我已经有了我的轻量级格式,所以我只需要将像素值读入数组。
**解决方案:** 我的草图如下所示:
var myBitmap = new Bitmap(@"input.png");
for (int x = 0; x < myBitmap.Width; x++)
for (int y = 0; y < myBitmap.Height; y++)
{
Color pixelColor = myBitmap.GetPixel(x, y);
// things we do with pixelColor
}
示例 2:
var myBitmap = new Bitmap(@"input.png");
for (int x = 0; x < myBitmap.Width; x++)
{
for (int y = 0; y < myBitmap.Height; y++)
{
// Get the color of a pixel within myBitmap.
Color pixelColor = myBitmap.GetPixel(x, y);
string pixelColorStringValue =
pixelColor.R.ToString("D3") + " " +
pixelColor.G.ToString("D3") + " " +
pixelColor.B.ToString("D3") + ", ";
switch (pixelColorStringValue)
{
case "255 255 255":
{
// white pixel
break;
}
case "000 000 000":
{
// black pixel
break;
}
}
}
}