现在手头项目有个项目需要将6张A4纸大小的图片合成一张A4图片,每次都需要合成6次以上,现在使用DrawImage合成图片,使用DrawImage函数一次需要0.17秒,速度太慢,有没有更好的方法,快速合成图片

解决方案 »

  1.   

    我觉得0.17秒挺快的了。1.可以考虑使用C++写一个DLL.
    2.考虑用多个线程去做。可以分开的有:1)多个合成图片的处理(如果有多个的话);2)一个合成图片中,分开处理6个原始图片的缩小工作,然后手工把数据合成一个图片。
      

  2.   

    private Bitmap MergerImg(Dictionary <string, Bitmap> bitMapDic) 
            { 
                Bitmap backgroudImg = new Bitmap(bitMapDic.Count * 12, 16); 
                Graphics g = Graphics.FromImage(backgroudImg); 
                g.Clear(System.Drawing.Color.White); 
                int j = 0; 
                foreach (KeyValuePair <string, Bitmap> entry in bitMapDic) 
                { 
                    Bitmap map = entry.Value; 
                    g.DrawImage(map, j * 11, 0, map.Width, map.Height); 
                    j++; 
                } 
                g.Dispose(); 
                return backgroudImg; 
            }