У меня есть картинка в форме Windows.
Я делаю следующее, чтобы загрузить в него файл PNG.
Bitmap bm = (Bitmap)Image.FromFile("Image.PNG", true);
Bitmap tmp;
public Form1() {
InitializeComponent();
this.tmp = new Bitmap(bm.Width, bm.Height);
}
private void pictureBox1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(this.bm, new Rectangle(0, 0, tmp.Width, tmp.Height), 0, 0, tmp.Width, tmp.Height, GraphicsUnit.Pixel);
}
Однако мне нужно нарисовать что-то на изображении, а затем снова отобразить результат. Рисование прямоугольников может быть выполнено только через класс Graphics.
Мне нужно нарисовать необходимые прямоугольники на изображении, снова сделать его экземпляром класса Image и сохранить его в this.bm
Я могу добавить кнопку, которая выполняет this.pictureBox1.Refresh();
, заставляя PictureBox быть заново нарисованным, но я не могу привести Graphics к Image. Из-за этого я не могу сохранить изменения в растровое изображение this.bm
.
Это моя проблема, и я не вижу выхода.