如何抓取图像并将其保存在文件夹中[c# windows应用程序]

发布于 2024-11-18 12:43:38 字数 79 浏览 0 评论 0原文

我正在使用 c# 创建一个 Windows 应用程序。我有一个按钮应该捕获图像(整个桌面屏幕)并将其保存在文件夹中。此外,我需要显示图像的预览。

I am Creating an windows application using c#.I have a button which should capture the image(the entire Desktop screen) and Save it in a folder .Also i need to show the preview of the image .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

逆光飞翔i 2024-11-25 12:43:38

Graphics.CopyFromScreen 方法

示例代码:

Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
g.Save();
bmp.Save("D:\\file.jpg", ImageFormat.Bmp);

如显示预览。 IMO 自己写并不难。

Graphics.CopyFromScreen Method

sample code:

Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
g.Save();
bmp.Save("D:\\file.jpg", ImageFormat.Bmp);

as for show the preview. IMO not that hard to write it on ur own.

路弥 2024-11-25 12:43:38

有不同的方法来执行您带来的内容。使用屏幕 类,我在网上找到了几个简单的示例。其他人正在使用 Direct3D。

  1. TeboScreen:基本 C# 屏幕捕获应用程序
  2. 捕获屏幕截图
  3. C# – 使用 Direct3D 进行屏幕捕获
  4. 捕获桌面屏幕;
  5. 使用 C# 和 Windows 窗体的 .NET 中的增强型桌面记录器; (可能不适合您的问题,但如果您计划进一步的功能,可能会变得有趣。)
  6. 使用C#捕获屏幕图像

简而言之,这个想法包括使用 Screen 类或您最喜欢的方式获取桌面图像,将其存储到 Bitmap 对象并将该位图保存到文件中。

至于显示预览,一旦创建了 Bitmap 实例,您只需要一个 PictureBox 并设置其 图像 属性并向用户显示您的表单,以便他可以看到图像。

希望这有帮助! =)

There are different ways to perform what you bring here. Using the Screen class, there are a few simple samples I found on the Internet. Others are using Direct3D.

  1. TeboScreen: Basic C# Screen Capture Application;
  2. Capture a Screen Shot;
  3. C# – Screen capture with Direct3D;
  4. Capture DeskTop Screen;
  5. Enhanced Desktop Recorder in .NET using C# and Windows Forms; (perhaps not suited for your question, but might get interesting if you plan further features.)
  6. Capturing the Screen Image Using C#.

In short, the idea consists of getting the image of the desktop using the Screen class or your favorite way, store it into a Bitmap object and save this bitmap into a file.

As for displaying a preview, once your Bitmap instance is created, you simply need a PictureBox and set its Image property and show your form to the user so he may see the image.

Hope this helps! =)

巾帼英雄 2024-11-25 12:43:38

您将需要导入一些 Interop dll。

看看下面的示例很好地展示了如何捕获屏幕截图并保存到磁盘。

public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
    int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
    hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
    hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
    GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));                 GDI32.SelectObject(hdcDest,hBitmap);
    GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
    GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
    SaveImageAs(hBitmap,fileName,imageFormat);
    Cleanup(hBitmap,hdcSrc,hdcDest);
}

上面的例子取自网站。所有代码均由 Perry Lee 编写

You will need to do some importing of Interop dlls.

Take a look at the following example shows very well how to capture the screen shot and save to disk.

public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
    int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
    hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
    hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
    GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));                 GDI32.SelectObject(hdcDest,hBitmap);
    GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
    GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
    SaveImageAs(hBitmap,fileName,imageFormat);
    Cleanup(hBitmap,hdcSrc,hdcDest);
}

The above example taken from the website. All code by Perry Lee

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文