如何使用C#组合像图层的png图像数组?

我有一个名为的图像数组

image__trans.png 

所有这些图像都有透明区域。 这个想法是,当把它们放在一起时,它们将形成一个漂亮的图像。 但我得到了一个奇怪的GDI +相关错误(“GDI +中发生了一般错误”),我一直在发疯。 我现在使用的代码可以看作如下;

 number_of_photos = 30; Bitmap temp = new Bitmap("background.png");//some white background 640x480 pixels temp.Save("temp.png", ImageFormat.Png); temp.Dispose(); for (int photo_no = 0; photo_no < number_of_photos; photo_no++) { Bitmap temp1 = new Bitmap("temp.png"); Graphics gra = Graphics.FromImage(temp1); Bitmap new_layer = new Bitmap("image_" + photo_no + "_trans.png"); //the images image__trans.png are also 640x480 pixels gra.DrawImage(new_layer,0,0); temp1.Save("temp.png");//error: A generic error occurred in GDI+. temp1.Dispose(); } 

难道我做错了什么? 提前谢谢你的帮助…

我的建议是只在整个过程完成后保存图像。

 Image i = new Image(...) Graphics g = Graphics.FromImage(i) for(...) { g.Draw(...) } i.Save(...) 

编写new Bitmap(filename)将锁定文件,直到您释放Bitmap
因此,您无法覆盖该文件。