2012-02-29 71 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