以前在別的地方見過一個通過調(diào)用系統(tǒng)API實現(xiàn)屏幕截圖的例子,從內(nèi)心來說我不太喜歡在C#代碼中出現(xiàn)這種情況,現(xiàn)在什么都講“和諧”,我覺得這種做法就是破壞了我們的“和諧”代碼,呵呵,開玩笑,有的時候,不通過系統(tǒng)API確實難以做到的。
下面講述的就是怎么通過純C#來實現(xiàn)屏幕截圖,代碼如下:
1 //截取全屏圖象 2 PRivate void btnFullScreen_Click(object sender, EventArgs e) 3 { 4 //創(chuàng)建圖象,保存將來截取的圖象 5 Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); 6 Graphics imgGraphics = Graphics.FromImage(image); 7 //設(shè)置截屏區(qū)域 柯樂義 8 imgGraphics.CopyFromScreen(0, 0, 0, 0, new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)); 9 //保存10 SaveImage(image);11 }12 13 //保存圖象文件14 private void SaveImage(Image image)15 {16 if (saveFileDialog.ShowDialog(this) == DialogResult.OK)17 {18 string fileName = saveFileDialog.FileName;19 string extension = Path.GetExtension(fileName);20 if (extension == ".jpg")21 {22 image.Save(fileName, ImageFormat.Jpeg);23 }24 else25 {26 image.Save(fileName, ImageFormat.Bmp);27 }28 }29 }
http://m.survivalescaperooms.com/sosoft/
這段代碼其實很簡單,可以設(shè)置截屏區(qū)域的位置和大小,只不過只能在.net 2.0環(huán)境中才能運行。本人正在進一步完善實現(xiàn)拖動拖動截屏技術(shù),類似于QQ中的截屏辦法,正在攻關(guān)中,如果完成就向大家公布源代碼。
新聞熱點
疑難解答