合併多個圖檔 , 元件的畫面Graphic

  • 717
  • 0

摘要:合併多個圖檔 , 元件的畫面Graphic

        // 合併多個圖檔 , 元件的畫面
        private void simpleButton2_Click(object sender, EventArgs e)
        {            
            SaveFileDialog f = new SaveFileDialog();
            f.FileName =  "~tmp.jpg";
            f.Filter = "Jpeg files (*.jpg)|*.jpg";

            if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                // Group control 1~5  5個 Group control 元件產生五個 image
                Bitmap[] imgs = new Bitmap[] { getBitmap(groupControl1)
                , getBitmap(groupControl2), getBitmap(groupControl3), getBitmap(groupControl4), getBitmap(groupControl5) };

                // 先開一個空白大的圖
                Bitmap CombineImg = new Bitmap(groupControl1.Width, groupControl1.Height + groupControl2.Height + groupControl3.Height + groupControl4.Height + groupControl5.Height);
                Graphics gc = Graphics.FromImage(CombineImg);

                // 把5個畫到大圖上面
                int y = 0;
                for (int i = 0; i < imgs.Length; i++)
                {
                    gc.DrawImage(imgs[i], 0, y, imgs[i].Width, imgs[i].Height);
                    y = y + imgs[i].Height;
                }
                //CombineImg.Save(@"C:\a.png", System.Drawing.Imaging.ImageFormat.Png); //可以變格式, 但我不想給這功能
                CombineImg.Save(f.FileName);
            }
        }
        // 產生這個原件的圖
        private Bitmap getBitmap(DevExpress.XtraEditors.GroupControl gr)
        {
            Bitmap img = new Bitmap(gr.Width, gr.Height);
            gr.DrawToBitmap(img, new Rectangle(0, 0, gr.Width, gr.Height));
            return img;
        }