位图中的绘图坐标不起作用

时间:2015-01-19 22:55:58

标签: c# graphics

我一直在努力解决我的代码中的一些奇怪的行为。

它意味着绘制存储在List中的坐标。它应该工作,因为我一直使用相同的结构,它工作(唯一的区别是,最后一次,我是在一个文件中保存坐标,然后解析它们)。

应该绘制坐标的代码是:

using (Bitmap bmp = new Bitmap(8000, 8000, System.Drawing.Imaging.PixelFormat.Format32bppPArgb))
      {
       using (Graphics gr = Graphics.FromImage(bmp))
            {
             gr.FillRectangle(myWitheBrush, 0, 0, 8000, 8000);
             gr.TranslateTransform(4000, 4000);
             foreach (Vector mPD in mapsPositionsData)
             {
                 gr.FillRectangle(myBlackBrush, mPD.X, mPD.Y, 2f, 2f);
             }
             string fileName = @"\drownWholeMap" + rndm + ".png";
             loger.WriteToLog("Saving image in " + filePath + fileName + " ..."); 
             bmp.Save(filePath + fileName, System.Drawing.Imaging.ImageFormat.Png);
             loger.WriteToLog("Saved.");
             bmp.Dispose();
             gr.Dispose();
             loger.WriteToLog("");
            }
      }

代码没有给出任何错误,我检查它是否正在为列表mapsPositionsData中的每个坐标运行。我的图像是空的,它没有充满矩形。

此外,mapsPositionsData看起来像How mapsPositionsData looks like
所以我知道问题不是因为数据的空源。此外,坐标并非全部为负,如图所示,这是巧合,加上它们的范围为-4000到4000,这就是为什么我需要这么大的位图

1 个答案:

答案 0 :(得分:0)

在写(在foreach之后)

之前尝试反转你的翻译变换
gr.TranslateTransform(-4000, -4000);