下面是我合并数张bitmap图像的源代码,在运行时有时候会弹出“内存不足”的异常提示,通过调试定位在该函数中。请问如何优化代码能降低内存消耗呢?
/// <summary>
/// 位图叠加
/// </summary>
/// <param name="bitmapDown">底层位图</param>
/// <param name="bitmapUp">要叠加的位图</param>
/// <returns>合成的新位图</returns>
public Bitmap AddBitmap(Bitmap bitmapDown, Bitmap[] bitmapUp)
{
Graphics g = Graphics.FromImage(bitmapDown);
for (int i = 0; i < bitmapUp.Length; i++)
{
bitmapUp[i].MakeTransparent(); g.DrawImage(
bitmapUp[i],
new Rectangle(0, 0, bitmapDown.Size.Width, bitmapDown.Size.Height),
0,
0,
bitmapUp[i].Size.Width,//bitmapDown
bitmapUp[i].Size.Height,//bitmapDown
GraphicsUnit.Pixel,
null);
}
return bitmapDown;
}C# 位图内存
/// <summary>
/// 位图叠加
/// </summary>
/// <param name="bitmapDown">底层位图</param>
/// <param name="bitmapUp">要叠加的位图</param>
/// <returns>合成的新位图</returns>
public Bitmap AddBitmap(Bitmap bitmapDown, Bitmap[] bitmapUp)
{
Graphics g = Graphics.FromImage(bitmapDown);
for (int i = 0; i < bitmapUp.Length; i++)
{
bitmapUp[i].MakeTransparent(); g.DrawImage(
bitmapUp[i],
new Rectangle(0, 0, bitmapDown.Size.Width, bitmapDown.Size.Height),
0,
0,
bitmapUp[i].Size.Width,//bitmapDown
bitmapUp[i].Size.Height,//bitmapDown
GraphicsUnit.Pixel,
null);
}
return bitmapDown;
}C# 位图内存
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货