合并图片时报GDI+ 中发生一般性错误。
protected void Button1_Click(object sender, EventArgs e){
Bitmap[] bp = new Bitmap[4];
bp[0] = new Bitmap(Server.MapPath("images/1.jpg"));
bp[1] = new Bitmap(Server.MapPath("images/2.jpg"));
bp[2] = new Bitmap(Server.MapPath("images/3.jpg"));
bp[3] = new Bitmap(Server.MapPath("images/4.jpg"));
Bitmap b = MergerImg(bp);
b.Save(Server.MapPath("images/5.jpg")); }
#region 合并图片
/// <summary>
/// 合并图片
/// </summary>
/// <param name="maps"></param>
/// <returns></returns>
private Bitmap MergerImg(params Bitmap[] maps)
{
int i = maps.Length;
if (i == 0)
throw new Exception("图片数不能够为0");
//创建要显示的图片对象,根据参数的个数设置宽度
Bitmap backgroudImg = new Bitmap(maps[i-1].Width,i * maps[i-1].Height);
Graphics g = Graphics.FromImage(backgroudImg);
//清除画布,背景设置为白色
g.Clear(System.Drawing.Color.White);
for (int j = 0; j < i; j++)
{
g.DrawImage(maps[j], 0, j * maps[j].Height, maps[j].Width, maps[j].Height);
}
g.Dispose();
//backgroudImg.Dispose();
return backgroudImg;
}
#endregion
我的程序中如果不写backgroudImg.Dispose(),就说是GDI+ 中发生一般性错误。如果写了这句就说b.Save(Server.MapPath("images/5.jpg"))这里的参数无效,我都快崩溃了。到底应该怎么改啊。而且我合并的图为什么跟原图的大小不一样呢。我合并的图的大小都是一样大的。请帮忙啊。 --------------------编程问答-------------------- 换一下顺序试试
b.Save(Server.MapPath("images/5.jpg"));
backgroudImg.Dispose();
--------------------编程问答-------------------- 而且我合并的图为什么跟原图的大小不一样呢。
是长宽不一样,还是文件大小不一样?
把Save的那个文件类型的参数加上试试,注意不是文件后缀
b.Save(Server.MapPath("images/5.jpg"));
补充:.NET技术 , C#