Skip to content

Simple screenshot library for .NET (Windows only). Allows selection and capture of screen region, similar to Snipping Tool.

License

Notifications You must be signed in to change notification settings

gilyes/Screenshot.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Screenshot.NET

Simple screenshot library for .NET. Allows selection and capture of screen region, similar to Snipping Tool.

Requirements

  • .NET Framework 4.6.2+, .NET 6+, or .NET 8+
  • Windows only (uses WPF and System.Drawing)

Installation

dotnet add package GI.Screenshot

Or via Package Manager Console:

PM> Install-Package GI.Screenshot

Supported Frameworks

The library targets multiple frameworks:

  • .NET Framework 4.6.2 (net462)
  • .NET 6.0 Windows (net6.0-windows)
  • .NET 8.0 Windows (net8.0-windows)

NuGet will automatically select the appropriate version for your project.

Usage

using GI.Screenshot;

// allow user to select and capture screen region
var image = Screenshot.CaptureRegion();

// customize the selection UI
var options = new ScreenshotOptions
{
    BackgroundOpacity = 0.5,
    SelectionRectangleBorderBrush = Brushes.Red
};
var image = Screenshot.CaptureRegion(options);

// get a screenshot of given region
var image = Screenshot.CaptureRegion(rect);

// get a screenshot of all screens
var image = Screenshot.CaptureAllScreens();

The returned BitmapSource can be used directly in WPF or saved to disk.

Multiple monitors with different scale factors

The application must enable per-monitor DPI awareness in order for the region selection to work properly on a multi-monitor setup where not all monitors use the same scale factor.

It is recommended to set this in the application manifest:

<?xml version="1.0" encoding="utf-8"?>

<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">

  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
    </windowsSettings>
  </application>

</assembly>

Building

Build the library:

dotnet build Screenshot.sln

Create NuGet package:

dotnet pack Screenshot/Screenshot.csproj -c Release -o Releases

License

MIT License - see LICENSE file for details

About

Simple screenshot library for .NET (Windows only). Allows selection and capture of screen region, similar to Snipping Tool.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published