
private void GenerateBitmap(Size MapSize, int[,] BinMap)
{
Bitmap Bmap = new Bitmap(MapSize.Width, MapSize.Height);
Graphics g = Graphics.FromImage(Bmap); // 開放 Draw 權限
g.Clear(Color.White);
float MapWidth = (float)Bmap.Width;
float MapHeight = (float)Bmap.Height;
int DieCntX = BinMap.GetLength(0);
int DieCntY = BinMap.GetLength(1);
float DieWidth = MapWidth / DieCntX;
float DieHeight = MapHeight / DieCntY;
//上色
SolidBrush myBrush = new SolidBrush(Color.Blue);
for (int y = 0x00; y < DieCntY; y++)
{
for (int x = 0x00; x < DieCntX; x++)
{
myBrush.Color = ColorTable.GetColor(BinMap[x, y]);
g.FillRectangle(myBrush, DieWidth * x, DieHeight * y, DieWidth, DieHeight);
}
}
//畫線
int XLineCnt = DieCntX - 1;
int YLineCnt = DieCntY - 1;
Pen pen = new Pen(Color.Black, 2);
for (int idx = 0x00; idx <= XLineCnt; idx++)
{
g.DrawLine(pen, DieWidth * (idx + 1), 0, DieWidth * (idx + 1), MapHeight);
}
for (int idx = 0x00; idx <= YLineCnt; idx++)
{
g.DrawLine(pen, 0, DieHeight * (idx + 1), MapWidth, DieHeight * (idx + 1));
}
pictureBox1.Image = Bmap; // 顯示
//Bmap.Save("d:\\aa.bmp", System.Drawing.Imaging.ImageFormat.Bmp); //存檔
}
沒有留言:
張貼留言