Рисование изображения в C # - PullRequest
       23

Рисование изображения в C #

0 голосов
/ 29 февраля 2012

В принципе, я пытаюсь нарисовать изображение с большим числом (текущее значение моей переменной итерации):

var imageList = new List<Image>();

for (int i = 1; i <= totalCount; i++)    
{
    using (Bitmap bmp = new Bitmap(800,2000))
    using (Graphics g = Graphics.FromImage(bmp))
    {
        g.DrawString(i.ToString(), 
                     new Font("Arial", 40), 
                     Brushes.Black, 
                     new PointF(400,1000));   
    }
    imageList.Add(bmp);
}

Но при чтении из этого списка изображений появляется ошибка: Параметр недействителен. Что я делаю не так?

1 Ответ

3 голосов
/ 29 февраля 2012

Растровое изображение будет уничтожено областью действия using, прежде чем оно будет добавлено в ваш список. Удалить using.

using вызовет Dispose на вашем изображении, что сделает объект недействительным. Итак, когда вы помещаете его в List, вы помещаете мертвый объект.

List<Image> imageList = new List<Image>();
for (int i = 1; i <= totalCount; i++)    
{
        Bitmap bmp = new Bitmap(800,2000))
        using (Graphics g = Graphics.FromImage(bmp))
        {
            g.DrawString(i.ToString(), new Font("Arial", 40), Brushes.Black, new PointF(400,1000));   
        }

        imageList.Add(bmp);
}
...