Редактирование изображения с графикой в ​​цикле - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь изменить изображение в таймере, но изображение не изменится. Так вот как я инициализирую изображение:

img = Image.FromFile(@"Resources\map.png");

И это внутри моего таймера:

using (Graphics g = Graphics.FromImage(img))
{
    g.TranslateTransform(-15, -15);
    foreach(Location l in locations)
    {
        g.DrawImage(color[l.getColor()], l.getPoint());
    }
}
BackgroundImage = img;

Если я загружаю изображение из файла в моем цикле, оно работает просто отлично, но я бы очень хотел этого избежать. Кто-нибудь знает как это решить? Я пытался использовать растровый объект для фона и рисовать карту на нем в таймере, но он тоже не работал.

редактирование:

Я решил это сейчас, но это все еще не так, так есть ли лучший способ? Я даже не понимаю, зачем это нужно:

using (Graphics g = Graphics.FromImage(bg = new Bitmap(img)))
{
    g.TranslateTransform(-15, -15);
    foreach(Location l in locations)
    {
        g.DrawImage(color[l.getColor()], l.getPoint());
    }
}
BackgroundImage = bg;
...