我一直在努力解决我的代码中的一些奇怪的行为。
它意味着绘制存储在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
看起来像
所以我知道问题不是因为数据的空源。此外,坐标并非全部为负,如图所示,这是巧合,加上它们的范围为-4000到4000,这就是为什么我需要这么大的位图
答案 0 :(得分:0)
在写(在foreach之后)
之前尝试反转你的翻译变换gr.TranslateTransform(-4000, -4000);