мой первый вопрос здесь. И я уверен, что это легко, но я нигде не могу найти решение, я много читал и просто не могу понять, как мне нужно сделать:
- У меня есть файл *.gif, который я хочу сохранить в
System.Drawing.Bitmap
, чтобы иметь доступ к методу GetPixel() - Я хочу, чтобы мой рисунок находился под некоторым контролем (в настоящее время пробую
PictureBox
)
Пока что у меня есть:
- Я создаю шаблон,
Bitmap
из файла - и это работает (map_t в коде) - Я создаю растровое изображение, которое на самом деле будет отрисовано (map)
- I can set my PictureBox image to a bitmap
- I can't change this bitmap. Or I can, but the result doesn't show
- Я думал, что мне придется создать
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();
}
}
}