基于C#實(shí)現(xiàn)的屏幕指定區(qū)域截屏代碼
以前在別的地方見過(guò)一個(gè)通過(guò)調(diào)用系統(tǒng)API實(shí)現(xiàn)屏幕截圖的例子,從內(nèi)心來(lái)說(shuō)我不太喜歡在C#代碼中出現(xiàn)這種情況,現(xiàn)在什么都講“和諧”,我覺得這種做法就是破壞了我們的“和諧”代碼,呵呵,開玩笑,有的時(shí)候,不通過(guò)系統(tǒng)API確實(shí)難以做到的。
下面講述的就是怎么通過(guò)純C#來(lái)實(shí)現(xiàn)屏幕截圖,代碼如下:
//截取全屏圖象
private void btnFullScreen_Click(object sender, EventArgs e)
{
//創(chuàng)建圖象,保存將來(lái)截取的圖象
Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics imgGraphics = Graphics.FromImage(image);
//設(shè)置截屏區(qū)域 柯樂義
imgGraphics.CopyFromScreen(0, 0, 0, 0, new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height));
//保存
SaveImage(image);
}
//保存圖象文件
private void SaveImage(Image image)
{
if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
{
string fileName = saveFileDialog.FileName;
string extension = Path.GetExtension(fileName);
if (extension == ".jpg")
{
image.Save(fileName, ImageFormat.Jpeg);
}
else
{
image.Save(fileName, ImageFormat.Bmp);
}
}
}
這段代碼其實(shí)很簡(jiǎn)單,可以設(shè)置截屏區(qū)域的位置和大小,只不過(guò)只能在.net 2.0環(huán)境中才能運(yùn)行。本人正在進(jìn)一步完善實(shí)現(xiàn)拖動(dòng)拖動(dòng)截屏技術(shù),類似于QQ中的截屏辦法,正在攻關(guān)中,如果完成就向大家公布源代碼。
相關(guān)文章
利用C#開發(fā)瀏覽器擴(kuò)展的全過(guò)程記錄
做web開發(fā)的同學(xué),經(jīng)常會(huì)用到各種chrome瀏覽器插件,那么我們寄幾怎么開發(fā)一個(gè)插件呢(其實(shí)是瀏覽器擴(kuò)展)?這篇文章主要給大家介紹了關(guān)于利用C#開發(fā)瀏覽器擴(kuò)展的相關(guān)資料,需要的朋友可以參考下2021-07-07
HTML文本框的值改變后觸發(fā)后臺(tái)代碼的方法
asp.net用日期插件,當(dāng)選中一個(gè)日期時(shí)觸發(fā)一個(gè)事件,以查詢當(dāng)前日期的數(shù)據(jù)。這是要跟數(shù)據(jù)庫(kù)交互的。先貼出控件代碼:2013-04-04
C#學(xué)習(xí)筆記- 淺談數(shù)組復(fù)制,排序,取段,元組
下面小編就為大家?guī)?lái)一篇C#學(xué)習(xí)筆記- 淺談數(shù)組復(fù)制,排序,取段,元組。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
C#ComboBox控件“設(shè)置 DataSource 屬性后無(wú)法修改項(xiàng)集合”的解決方法
這篇文章主要介紹了C#ComboBox控件“設(shè)置 DataSource 屬性后無(wú)法修改項(xiàng)集合”的解決方法 ,需要的朋友可以參考下2019-04-04
Unity3D控件Easytouch控制主角移動(dòng)
這篇文章主要為大家詳細(xì)介紹了Unity3D控件Easytouch控制主角移動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02

