我的第一个问题在这里。而且我确定这很容易,但是我在任何地方都找不到解决方案,我已经阅读了很多书,只是无法理解我需要做什么:
- 我有一个要存储的 *.gif 文件,
System.Drawing.Bitmap
以便我可以访问 GetPixel() 方法 - 我想让我的绘图有一些控制(目前正在尝试
PictureBox
)
到目前为止,我得到了什么:
- 我从文件创建了一个模板
Bitmap
-并且有效(代码中的map_t) - 我创建了一个实际绘制的位图(map)
- 我可以将我的 PictureBox 图像设置为位图
- 我无法更改此位图。或者我可以,但结果不显示
- 我想我必须
Graphic
从那个位图创建,然后改变它。我不知道我错过了什么。
这是代码: MapCanvas 是表单上的 PictureBox,一切都在 MouseMove 中,因为我试图在指针周围画一些圆圈 - 没有用,所以我最终得到了这段代码,它也不起作用。我已经阅读了我能找到的每一个问题,没有任何帮助......这是代码:
namespace Projekt_innowacje
{
public partial class MapForm : Form
{
Bitmap map_t;
Bitmap map;
public MapForm()
{
InitializeComponent();
map_t = new Bitmap("map.gif", true);
map = new Bitmap(map_t.Width, map_t.Height);
MapCanvas.Image = map;
}
private void MapCanvas_MouseMove(object sender, MouseEventArgs e)
{
Graphics canvas = Graphics.FromImage(map);
for (int i = 0; i <= map.Width; i++)
for (int j = 0; j <= map.Height; j++)
if (map.GetPixel(i, j) == Color.Red)
canvas.DrawLine(new Pen(Color.Blue), i, j, i + 1, j + 1);
// map.SetPixel(i, j, map.GetPixel(i, j)); // also doesn't work
//MapCanvas.Refresh();
MapCanvas.Invalidate();
canvas.Dispose();
}
}
}