2012-02-29 48 views
0

Baiscally的图像,我试图绘制图像,上面有一个很大的数字(我的迭代变量的当前值):绘制在C#

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); 
} 

但是从这个图象阅读时,我得到一个错误列表:参数无效。我做错了什么?

+0

你是如何阅读的?这可能是一个问题,你读了一个图像而不是一个位图? – Nikodemus 2012-02-29 09:52:25

+1

如果从列表中读取*时出现错误,为什么向我们显示代码*将*写入列表? – stakx 2012-02-29 09:54:34

+0

在哪一段代码中你会得到错误?并参见@ Dervall的答案。 – CodeCaster 2012-02-29 09:55:14

回答

3

在放入列表之前,位图将被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); 
} 
+0

非常好的斑点。 – Nikodemus 2012-02-29 10:03:56