標籤: 縱斷面 c#
源碼如下:
#region 儲存縱斷面 private void button_save_Click(object sender , EventArgs e) { SaveFileDialog saveImageDialog = new SaveFileDialog(); saveImageDialog.Title = "儲存縱斷面圖"; saveImageDialog.DefaultExt = ".png"; saveImageDialog.FileName = Linefeaturelayer.Name + "縱斷面圖"; saveImageDialog.InitialDirectory = "C:\\"; DialogResult dr = saveImageDialog.ShowDialog(); if (dr==DialogResult.OK) { CaptureImage(saveImageDialog.FileName); MessageBox.Show("儲存成功!"); } } private void CaptureImage(string path) { try { //獲得當前螢幕的大小 Rectangle rect = new Rectangle(); rect = Screen.GetWorkingArea(this); //建立一個以當前螢幕為模板的圖象 Graphics g1 = this.CreateGraphics(); //建立以螢幕大小為標準的位元影像 Image MyImage = new Bitmap(rect.Width , rect.Height , g1); Graphics g2 = Graphics.FromImage(MyImage); //得到螢幕的DC IntPtr dc1 = g1.GetHdc(); //得到Bitmap的DC IntPtr dc2 = g2.GetHdc(); //調用此API函數,實現螢幕捕獲 BitBlt(dc2 , 0 , 0 , rect.Width , rect.Height , dc1 , 0 , 0 , 13369376); //釋放掉螢幕的DC g1.ReleaseHdc(dc1); //釋放掉Bitmap的DC g2.ReleaseHdc(dc2); //以JPG檔案格式來儲存 MyImage.Save(path , ImageFormat.Png); } catch (System.Exception ex) { MessageBox.Show(ex.Message + " 儲存圖片失敗!"); } } //聲明一個API函數 [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")] private static extern bool BitBlt( IntPtr hdcDest , // 目標 DC的控制代碼 int nXDest , int nYDest , int nWidth , int nHeight , IntPtr hdcSrc , // 源DC的控制代碼 int nXSrc , int nYSrc , System.Int32 dwRop // 光柵的處理數值 ); #endregion
: