导航

    <#CACHE_INCLUDE_NAVBAR#>
« 最新ITILV3 Foundation考題介紹IBM 000-977考試信息 »

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

2010年10月28日 RedHat 0条评论 0个引用

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

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

  //截取全屏圖象

  privatevoidbtnFullScreen_Click(objectsender,EventArgse)

  {

  //創建圖象,保存將來截取的圖象

  Bitmapimage=newBitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);

  GraphicsimgGraphics=Graphics.FromImage(image);

  //設置截屏區域

  imgGraphics.CopyFromScreen(0,0,0,0,newSize(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height));

  //保存

  SaveImage(image);

  }

  //保存圖象文件

  privatevoidSaveImage(Imageimage)

  {

  if(saveFileDialog.ShowDialog(this)==DialogResult.OK)

  {

  stringfileName=saveFileDialog.FileName;

  stringextension=Path.GetExtension(fileName);

  if(extension==".jpg")

  {

  image.Save(fileName,ImageFormat.Jpeg);

  }

  else

  {

  image.Save(fileName,ImageFormat.Bmp);

  }

  }

  }

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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206