基于C#實(shí)現(xiàn)的屏幕指定區(qū)域截屏代碼
以前在別的地方見過一個通過調(diào)用系統(tǒng)API實(shí)現(xiàn)屏幕截圖的例子,從內(nèi)心來說我不太喜歡在C#代碼中出現(xiàn)這種情況,現(xiàn)在什么都講“和諧”,我覺得這種做法就是破壞了我們的“和諧”代碼,呵呵,開玩笑,有的時候,不通過系統(tǒng)API確實(shí)難以做到的。
下面講述的就是怎么通過純C#來實(shí)現(xiàn)屏幕截圖,代碼如下:
//截取全屏圖象
private void btnFullScreen_Click(object sender, EventArgs e)
{
//創(chuàng)建圖象,保存將來截取的圖象
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í)很簡單,可以設(shè)置截屏區(qū)域的位置和大小,只不過只能在.net 2.0環(huán)境中才能運(yùn)行。本人正在進(jìn)一步完善實(shí)現(xiàn)拖動拖動截屏技術(shù),類似于QQ中的截屏辦法,正在攻關(guān)中,如果完成就向大家公布源代碼。
相關(guān)文章
sqlserver備份還原數(shù)據(jù)庫功能封裝分享
這篇文章主要介紹了sqlserver備份還原數(shù)據(jù)庫功能封裝示例,需要的朋友可以參考下2014-03-03C#使用CefSharp實(shí)現(xiàn)內(nèi)嵌網(wǎng)頁詳解
這篇文章主要介紹了C# WPF里怎么使用CefSharp嵌入一個網(wǎng)頁,并給出一個簡單示例演示C#和網(wǎng)頁(JS)的交互實(shí)現(xiàn),感興趣的小伙伴可以了解一下2023-04-04C#簡單訪問SQLite數(shù)據(jù)庫的方法(安裝,連接,查詢等)
這篇文章主要介紹了C#簡單訪問SQLite數(shù)據(jù)庫的方法,涉及SQLite數(shù)據(jù)庫的下載、安裝及使用C#連接、查詢SQLIte數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-07-07C#實(shí)現(xiàn)設(shè)置電腦顯示器參數(shù)
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)設(shè)置電腦顯示器參數(shù),文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12c#中WebService的介紹及調(diào)用方式小結(jié)
這篇文章主要給大家介紹了關(guān)于c#中的WebService及其調(diào)用方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11