我有一个名为
的图像数组image_<somenumber>_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_<photo_no>_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();
}
我做错了吗?感谢您的帮助...
答案 0 :(得分:1)
写new Bitmap(filename)
将锁定文件,直到您处置Bitmap
因此,您无法覆盖该文件。
答案 1 :(得分:1)
我的建议是只在整个过程完成后保存图像。
Image i = new Image(...)
Graphics g = Graphics.FromImage(i)
for(...)
{
g.Draw(...)
}
i.Save(...)