純C#實現屏幕指定區域截屏


以前在別的地方見過一個通過調用系統API實現屏幕截圖的例子,從內心來說我不太喜歡在C#代碼中出現這種情況,現在什么都講“和諧”,我覺得這種做法就是破壞了我們的“和諧”代碼,呵呵,開玩笑,有的時候,不通過系統API確實難以做到的。

下面講述的就是怎么通過純C#來實現屏幕截圖,代碼如下:

 1 //截取全屏圖象
 2         private void btnFullScreen_Click(object sender, EventArgs e)
 3         {
 4             //創建圖象,保存將來截取的圖象
 5             Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
 6             Graphics imgGraphics = Graphics.FromImage(image);
 7             //設置截屏區域 柯樂義
 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                 else
25                 {
26                     image.Save(fileName, ImageFormat.Bmp);
27                 }
28             }
29         }

http://www.cnblogs.com/sosoft/

這段代碼其實很簡單,可以設置截屏區域的位置和大小,只不過只能在.net 2.0環境中才能運行。本人正在進一步完善實現拖動拖動截屏技術,類似於QQ中的截屏辦法,正在攻關中,如果完成就向大家公布源代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM