未知数量图片,图片长宽皆为32倍数,小于等于512*512
把这些图片组合成最大2048*2048的大图
放不下的另组合新的大图
组合的大图要尽可能利用空间各位有什么好思路?

解决方案 »

  1.   

    合并图片代码,至于怎么组合,楼下提供。
      #region 合并图片
            /// <summary>
            /// 合并图片
            /// </summary>
            /// <param name="bitMapDic">bitmap数组</param>
            /// <returns>bitmap</returns>
            public Bitmap MergerImg(Bitmap[] bitMapDic)
            {
                int j = 0, twatch = 0, theight = 0;
                foreach (Bitmap entry in bitMapDic)
                {
                    if (entry != null)
                    {
                        j++;
                        theight = entry.Height;
                        twatch = entry.Width;
                    }
                }            Bitmap backgroudImg = new Bitmap(j * twatch, theight);
                Graphics g = Graphics.FromImage(backgroudImg);
                //清除画布,背景设置为白色
                g.Clear(System.Drawing.Color.White);            j = 0;
                foreach (Bitmap entry in bitMapDic)
                {
                    if (entry != null)
                    {
                        g.DrawImage(entry, j * entry.Width, 0, entry.Width, entry.Height);
                        j++;
                    }
                }
                g.Dispose();
                return backgroudImg;
            }
            #endregion