![]() |
VOOZH | about |
dotnet add package SixLabors.ImageSharp.Drawing.WebGPU --version 1.0.0
NuGet\Install-Package SixLabors.ImageSharp.Drawing.WebGPU -Version 1.0.0
<PackageReference Include="SixLabors.ImageSharp.Drawing.WebGPU" Version="1.0.0" />
<PackageVersion Include="SixLabors.ImageSharp.Drawing.WebGPU" Version="1.0.0" />Directory.Packages.props
<PackageReference Include="SixLabors.ImageSharp.Drawing.WebGPU" />Project file
paket add SixLabors.ImageSharp.Drawing.WebGPU --version 1.0.0
#r "nuget: SixLabors.ImageSharp.Drawing.WebGPU, 1.0.0"
#:package SixLabors.ImageSharp.Drawing.WebGPU@1.0.0
#addin nuget:?package=SixLabors.ImageSharp.Drawing.WebGPU&version=1.0.0Install as a Cake Addin
#tool nuget:?package=SixLabors.ImageSharp.Drawing.WebGPU&version=1.0.0Install as a Cake Tool
👁 SixLabors.ImageSharp.Drawing
👁 Build Status
👁 Code coverage
👁 License: Six Labors Split
ImageSharp.Drawing is a cross-platform 2D drawing library built on top of ImageSharp. It adds a rich vector drawing model for composing raster images, rendering text, shaping paths, masking image-processing operations, and targeting CPU or WebGPU-backed drawing surfaces from the same DrawingCanvas API.
The core package targets .NET 8 and provides the default CPU backend. The optional SixLabors.ImageSharp.Drawing.WebGPU package adds GPU-backed rendering for native windows, external surfaces, and offscreen render targets.
PathBuilder geometry.SixLabors.Fonts, including rich text runs, fallback fonts, bidirectional text, vertical layout, glyph paths, text measurement, wrapped text, and text-on-path scenarios.canvas.Apply(...), or fill paths with images via ImageBrush.Image<TPixel> memory with the CPU backend, or into WebGPU windows, external host surfaces, and offscreen render targets with the WebGPU backend.Draw into an Image<TPixel> with the CPU backend:
image.Mutate(ctx => ctx.Paint(canvas =>
{
// A fill without geometry paints the entire canvas.
canvas.Fill(Brushes.Solid(Color.White));
// Brushes can be reused across paths or used directly for full-canvas fills.
canvas.Fill(new LinearGradientBrush(
new PointF(0, 0),
new PointF(400, 300),
GradientRepetitionMode.None,
new ColorStop(0F, Color.CornflowerBlue),
new ColorStop(1F, Color.MediumSeaGreen)));
// Built-in polygon types are regular IPath instances accepted by Fill and Draw.
canvas.Fill(Brushes.Solid(Color.HotPink), new EllipsePolygon(200, 200, 100));
canvas.Draw(Pens.Solid(Color.Navy, 3F), new RoundedRectanglePolygon(50, 50, 200, 100, 16));
}));
Draw into a native WebGPU window with the same canvas-facing API:
using WebGPUWindow window = new(new WebGPUWindowOptions
{
Title = "ImageSharp.Drawing",
Size = new Size(800, 600),
Format = WebGPUTextureFormat.Bgra8Unorm,
PresentMode = WebGPUPresentMode.Fifo,
});
window.Run(frame =>
{
DrawingCanvas canvas = frame.Canvas;
// WebGPU frames expose the same DrawingCanvas API as CPU image processing.
canvas.Fill(Brushes.Solid(Color.Black));
canvas.Fill(Brushes.Solid(Color.CornflowerBlue), new EllipsePolygon(400, 300, 120));
});
Support the efforts of the development of the Six Labors projects.
ImageSharp tag. Do not open issues for questions!This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.
Install stable releases via NuGet; development releases are available via MyGet.
| Package Name | Release (NuGet) | Nightly (MyGet) |
|---|---|---|
SixLabors.ImageSharp.Drawing |
👁 NuGet |
👁 feedz.io |
SixLabors.ImageSharp.Drawing.WebGPU |
👁 NuGet |
👁 feedz.io |
If you prefer, you can compile ImageSharp.Drawing yourself (please do and help!)
Alternatively, you can work from command line and/or with a lightweight editor on both Linux/Unix and Windows:
To clone ImageSharp.Drawing locally, click the "Clone in [YOUR_OS]" button above or run the following git commands:
git clone https://github.com/SixLabors/ImageSharp.Drawing
If working with Windows please ensure that you have enabled log file paths in git (run as Administrator).
git config --system core.longpaths true
This repository contains git submodules. To add the submodules to the project, navigate to the repository root and type:
git submodule update --init --recursive
Please... Spread the word, contribute algorithms, submit performance improvements, unit tests, no input is too little. Make sure to read our Contribution Guide before opening a PR.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 844 | 5/12/2026 |