C#實(shí)現(xiàn)截圖幫助類(lèi)
更新時(shí)間:2022年07月05日 11:28:31 作者:edielei
這篇文章介紹了C#實(shí)現(xiàn)截圖幫助類(lèi)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
幫助類(lèi)實(shí)現(xiàn):
注意修改命名空間
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
class ScreenCapture
{
private Bitmap _screenshot = null;
/// <summary>
/// 截取全屏
/// </summary>
/// <returns>返回值</returns>
public Bitmap CaptureScreen()
{
return Capture(Rectangle.Empty, false);
}
/// <summary>
/// 截取全屏并保存
/// </summary>
/// <param name="fileName">文件路徑</param>
/// <returns></returns>
public Bitmap CaptureScreen(string fileName)
{
Bitmap screenshot = Capture(Rectangle.Empty, false);
saveImage(fileName, screenshot);
return screenshot;
}
/// <summary>
/// 截屏到剪切板
/// </summary>
public void CopyToClipboard()
{
if (this._screenshot != null)
Clipboard.SetImage(this._screenshot);
else if (this._screenshot == null)
MessageBox.Show("No screenshot found. Please take a screenshot first.", "Copy to Clipboard");
}
/// <summary>
/// 區(qū)域截屏
/// </summary>
/// <param name="rect">區(qū)域范圍</param>
/// <returns>返回值</returns>
public Bitmap CaptureRectangle(Rectangle rect)
{
return Capture(rect, true);
}
/// <summary>
/// 區(qū)域截屏
/// </summary>
/// <param name="rect">區(qū)域范圍</param>
/// <param name="fileName">文件路徑</param>
/// <returns>返回值</returns>
public Bitmap CaptureRectangle(Rectangle rect, string fileName)
{
Bitmap screenshot = Capture(rect, true);
saveImage(fileName, screenshot);
return screenshot;
}
private Bitmap Capture(Rectangle rect, bool isRect)
{
int screenWidth = Screen.PrimaryScreen.Bounds.Width;
int screenHeight = Screen.PrimaryScreen.Bounds.Height;
Bitmap screenshot = null;
if(!isRect)
screenshot = new Bitmap(screenWidth, screenHeight);
else if(isRect)
screenshot = new Bitmap(rect.Width, rect.Height);
Graphics g = Graphics.FromImage(screenshot);
if (!isRect)
{
g.CopyFromScreen(Point.Empty, Point.Empty, screenshot.Size);
}
else if (isRect)
{
g.CopyFromScreen(new Point(rect.X, rect.Y), Point.Empty, rect.Size);
}
this._screenshot = screenshot;
return screenshot;
}
private void saveImage(string fileName, Bitmap screenshot)
{
string ext = System.IO.Path.GetExtension(fileName);;
ext = ext.ToLower();
if (ext == ".jpg" || ext == ".jpeg")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
else if(ext == ".gif")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif);
else if(ext == ".png")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
else if (ext == ".bmp")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
else if (ext == ".tiff")
screenshot.Save(fileName, System.Drawing.Imaging.ImageFormat.Tiff);
}
}
}到此這篇關(guān)于C#實(shí)現(xiàn)截圖幫助類(lèi)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#檢查指定對(duì)象是否存在于ArrayList集合中的方法
這篇文章主要介紹了C#檢查指定對(duì)象是否存在于ArrayList集合中的方法,涉及C#中Contains方法的使用技巧,需要的朋友可以參考下2015-04-04
C#開(kāi)發(fā)Android百度地圖手機(jī)應(yīng)用程序(多地圖展示)
這篇文章主要介紹了C#開(kāi)發(fā)Android百度地圖手機(jī)應(yīng)用程序(多地圖展示)的相關(guān)資料,需要的朋友可以參考下2016-02-02
將ocx文件轉(zhuǎn)換成C#程序引用的DLL文件的辦法
將ocx文件轉(zhuǎn)換成C#程序引用的DLL文件的辦法,需要的朋友可以參考一下2013-03-03
C#調(diào)用Oracle存儲(chǔ)過(guò)程方法介紹(附源碼)
這篇文章介紹了C#調(diào)用Oracle存儲(chǔ)過(guò)程的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
C# 通過(guò)ServiceStack 操作Redis
這篇文章主要介紹了C# 通過(guò)ServiceStack 操作Redis的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03

