日期:2014-05-17  浏览次数:20837 次

位图合并消耗较大内存,如何优化?
下面是我合并数张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#? 位图 内存

------解决方案--------------------
在 循环 内 加 bitmapUp[i].Dispose();