Skip to content

Commit d09adf2

Browse files
Merge branch 'main' into dependabot/github_actions/actions/cache-5
2 parents 1426a82 + bc082d6 commit d09adf2

2,516 files changed

Lines changed: 73019 additions & 40592 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-and-test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,12 @@ jobs:
9292
framework: net8.0
9393
sdk: 8.0.x
9494
runtime: -x64
95-
codecov: true
95+
codecov: false
9696
- os: macos-26
9797
framework: net8.0
9898
sdk: 8.0.x
9999
runtime: -x64
100-
codecov: false
100+
codecov: true
101101
- os: windows-latest
102102
framework: net8.0
103103
sdk: 8.0.x
@@ -209,7 +209,7 @@ jobs:
209209
XUNIT_PATH: .\tests\ImageSharp.Drawing.Tests # Required for xunit
210210

211211
- name: Export Failed Output
212-
uses: actions/upload-artifact@v4
212+
uses: actions/upload-artifact@v7
213213
if: failure()
214214
with:
215215
name: actual_output_${{ runner.os }}_${{ matrix.options.framework }}${{ matrix.options.runtime }}.zip

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,4 +227,7 @@ artifacts/
227227

228228
/tests/CodeCoverage/OpenCover.*
229229
SixLabors.Shapes.Coverage.xml
230-
/tests/SixLabors.Shapes.Benchmarks/BenchmarkDotNet.Artifacts/results/
230+
/tests/SixLabors.Shapes.Benchmarks/BenchmarkDotNet.Artifacts/results/
231+
.dotnet
232+
.codex-*
233+
.claude

ImageSharp.Drawing.All.sln

Lines changed: 523 additions & 0 deletions
Large diffs are not rendered by default.

ImageSharp.Drawing.sln

Lines changed: 107 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_root", "_root", "{C317F1B1
1717
Directory.Build.targets = Directory.Build.targets
1818
LICENSE = LICENSE
1919
README.md = README.md
20+
THIRD-PARTY-NOTICES = THIRD-PARTY-NOTICES
2021
EndProjectSection
2122
EndProject
2223
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1799C43E-5C54-4A8F-8D64-B1475241DB0D}"
@@ -323,42 +324,129 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Drawing.Benchmar
323324
EndProject
324325
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SharedInfrastructure", "shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.shproj", "{68A8CC40-6AED-4E96-B524-31B1158FDEEA}"
325326
EndProject
326-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{528610AC-7C0C-46E8-9A2D-D46FD92FEE29}"
327-
ProjectSection(SolutionItems) = preProject
328-
samples\Directory.Build.props = samples\Directory.Build.props
329-
samples\Directory.Build.targets = samples\Directory.Build.targets
330-
samples\Drawing.Samples.ruleset = samples\Drawing.Samples.ruleset
331-
EndProjectSection
332-
EndProject
333-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DrawShapesWithImageSharp", "samples\DrawShapesWithImageSharp\DrawShapesWithImageSharp.csproj", "{5493F024-0A3F-420C-AC2D-05B77A36025B}"
334-
EndProject
335327
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{23859314-5693-4E6C-BE5C-80A433439D2A}"
336328
ProjectSection(SolutionItems) = preProject
337329
.github\workflows\build-and-test.yml = .github\workflows\build-and-test.yml
338330
EndProjectSection
339331
EndProject
332+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Drawing.WebGPU", "src\ImageSharp.Drawing.WebGPU\ImageSharp.Drawing.WebGPU.csproj", "{061582C2-658F-40AE-A978-7D74A4EB2C0A}"
333+
EndProject
334+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Drawing.WebGPU.ShaderGen", "src\ImageSharp.Drawing.WebGPU.ShaderGen\ImageSharp.Drawing.WebGPU.ShaderGen.csproj", "{C7606104-5D58-4670-912C-3F336606B02D}"
335+
EndProject
336+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Drawing.ManualBenchmarks", "tests\ImageSharp.Drawing.ManualBenchmarks\ImageSharp.Drawing.ManualBenchmarks.csproj", "{70193989-E587-451A-AF34-4C74FEE5DA5A}"
337+
EndProject
338+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{CC2DDE4D-58D9-4333-BBEE-B4F36E0A4070}"
339+
EndProject
340+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebGPUWindowDemo", "samples\WebGPUWindowDemo\WebGPUWindowDemo.csproj", "{999D90DE-6940-4693-9F80-701F2D5DB77A}"
341+
EndProject
342+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DrawShapesWithImageSharp", "samples\DrawShapesWithImageSharp\DrawShapesWithImageSharp.csproj", "{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}"
343+
EndProject
340344
Global
341345
GlobalSection(SolutionConfigurationPlatforms) = preSolution
342346
Debug|Any CPU = Debug|Any CPU
347+
Debug|x64 = Debug|x64
348+
Debug|x86 = Debug|x86
343349
Release|Any CPU = Release|Any CPU
350+
Release|x64 = Release|x64
351+
Release|x86 = Release|x86
344352
EndGlobalSection
345353
GlobalSection(ProjectConfigurationPlatforms) = postSolution
346354
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
347355
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.Build.0 = Debug|Any CPU
356+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x64.ActiveCfg = Debug|Any CPU
357+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x64.Build.0 = Debug|Any CPU
358+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x86.ActiveCfg = Debug|Any CPU
359+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x86.Build.0 = Debug|Any CPU
348360
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.ActiveCfg = Release|Any CPU
349361
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.Build.0 = Release|Any CPU
362+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x64.ActiveCfg = Release|Any CPU
363+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x64.Build.0 = Release|Any CPU
364+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x86.ActiveCfg = Release|Any CPU
365+
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x86.Build.0 = Release|Any CPU
350366
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
351367
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
368+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x64.ActiveCfg = Debug|Any CPU
369+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x64.Build.0 = Debug|Any CPU
370+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x86.ActiveCfg = Debug|Any CPU
371+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x86.Build.0 = Debug|Any CPU
352372
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
353373
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|Any CPU.Build.0 = Release|Any CPU
374+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x64.ActiveCfg = Release|Any CPU
375+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x64.Build.0 = Release|Any CPU
376+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x86.ActiveCfg = Release|Any CPU
377+
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x86.Build.0 = Release|Any CPU
354378
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
355379
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|Any CPU.Build.0 = Debug|Any CPU
380+
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x64.ActiveCfg = Debug|Any CPU
381+
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x64.Build.0 = Debug|Any CPU
382+
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x86.ActiveCfg = Debug|Any CPU
383+
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x86.Build.0 = Debug|Any CPU
356384
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|Any CPU.ActiveCfg = Release|Any CPU
357385
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|Any CPU.Build.0 = Release|Any CPU
358-
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
359-
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|Any CPU.Build.0 = Debug|Any CPU
360-
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|Any CPU.ActiveCfg = Release|Any CPU
361-
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|Any CPU.Build.0 = Release|Any CPU
386+
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x64.ActiveCfg = Release|Any CPU
387+
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x64.Build.0 = Release|Any CPU
388+
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x86.ActiveCfg = Release|Any CPU
389+
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x86.Build.0 = Release|Any CPU
390+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
391+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
392+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x64.ActiveCfg = Debug|Any CPU
393+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x64.Build.0 = Debug|Any CPU
394+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x86.ActiveCfg = Debug|Any CPU
395+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x86.Build.0 = Debug|Any CPU
396+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
397+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|Any CPU.Build.0 = Release|Any CPU
398+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x64.ActiveCfg = Release|Any CPU
399+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x64.Build.0 = Release|Any CPU
400+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x86.ActiveCfg = Release|Any CPU
401+
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x86.Build.0 = Release|Any CPU
402+
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
403+
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|Any CPU.Build.0 = Debug|Any CPU
404+
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x64.ActiveCfg = Debug|Any CPU
405+
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x64.Build.0 = Debug|Any CPU
406+
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x86.ActiveCfg = Debug|Any CPU
407+
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x86.Build.0 = Debug|Any CPU
408+
{C7606104-5D58-4670-912C-3F336606B02D}.Release|Any CPU.ActiveCfg = Release|Any CPU
409+
{C7606104-5D58-4670-912C-3F336606B02D}.Release|Any CPU.Build.0 = Release|Any CPU
410+
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x64.ActiveCfg = Release|Any CPU
411+
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x64.Build.0 = Release|Any CPU
412+
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x86.ActiveCfg = Release|Any CPU
413+
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x86.Build.0 = Release|Any CPU
414+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
415+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
416+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Debug|x64.ActiveCfg = Debug|Any CPU
417+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Debug|x64.Build.0 = Debug|Any CPU
418+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Debug|x86.ActiveCfg = Debug|Any CPU
419+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Debug|x86.Build.0 = Debug|Any CPU
420+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
421+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Release|Any CPU.Build.0 = Release|Any CPU
422+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Release|x64.ActiveCfg = Release|Any CPU
423+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Release|x64.Build.0 = Release|Any CPU
424+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Release|x86.ActiveCfg = Release|Any CPU
425+
{70193989-E587-451A-AF34-4C74FEE5DA5A}.Release|x86.Build.0 = Release|Any CPU
426+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
427+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Debug|Any CPU.Build.0 = Debug|Any CPU
428+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Debug|x64.ActiveCfg = Debug|Any CPU
429+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Debug|x64.Build.0 = Debug|Any CPU
430+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Debug|x86.ActiveCfg = Debug|Any CPU
431+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Debug|x86.Build.0 = Debug|Any CPU
432+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Release|Any CPU.ActiveCfg = Release|Any CPU
433+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Release|Any CPU.Build.0 = Release|Any CPU
434+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Release|x64.ActiveCfg = Release|Any CPU
435+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Release|x64.Build.0 = Release|Any CPU
436+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Release|x86.ActiveCfg = Release|Any CPU
437+
{999D90DE-6940-4693-9F80-701F2D5DB77A}.Release|x86.Build.0 = Release|Any CPU
438+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
439+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
440+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Debug|x64.ActiveCfg = Debug|Any CPU
441+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Debug|x64.Build.0 = Debug|Any CPU
442+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Debug|x86.ActiveCfg = Debug|Any CPU
443+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Debug|x86.Build.0 = Debug|Any CPU
444+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
445+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Release|Any CPU.Build.0 = Release|Any CPU
446+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Release|x64.ActiveCfg = Release|Any CPU
447+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Release|x64.Build.0 = Release|Any CPU
448+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Release|x86.ActiveCfg = Release|Any CPU
449+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7}.Release|x86.Build.0 = Release|Any CPU
362450
EndGlobalSection
363451
GlobalSection(SolutionProperties) = preSolution
364452
HideSolutionNode = FALSE
@@ -384,13 +472,18 @@ Global
384472
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
385473
{59804113-1DD4-4F80-8D06-35FF71652508} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
386474
{68A8CC40-6AED-4E96-B524-31B1158FDEEA} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
387-
{5493F024-0A3F-420C-AC2D-05B77A36025B} = {528610AC-7C0C-46E8-9A2D-D46FD92FEE29}
388475
{23859314-5693-4E6C-BE5C-80A433439D2A} = {1799C43E-5C54-4A8F-8D64-B1475241DB0D}
476+
{061582C2-658F-40AE-A978-7D74A4EB2C0A} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
477+
{C7606104-5D58-4670-912C-3F336606B02D} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
478+
{70193989-E587-451A-AF34-4C74FEE5DA5A} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
479+
{999D90DE-6940-4693-9F80-701F2D5DB77A} = {CC2DDE4D-58D9-4333-BBEE-B4F36E0A4070}
480+
{43A3CA46-2675-4AD4-88FC-DDC2E657F0B7} = {CC2DDE4D-58D9-4333-BBEE-B4F36E0A4070}
389481
EndGlobalSection
390482
GlobalSection(ExtensibilityGlobals) = postSolution
391483
SolutionGuid = {5F8B9D1F-CD8B-4CC5-8216-D531E25BD795}
392484
EndGlobalSection
393485
GlobalSection(SharedMSBuildProjectFiles) = preSolution
486+
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{061582c2-658f-40ae-a978-7d74a4eb2c0a}*SharedItemsImports = 5
394487
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{2e33181e-6e28-4662-a801-e2e7dc206029}*SharedItemsImports = 5
395488
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{68a8cc40-6aed-4e96-b524-31b1158fdeea}*SharedItemsImports = 13
396489
EndGlobalSection

README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,21 @@ SixLabors.ImageSharp.Drawing
1111
[![Build Status](https://img.shields.io/github/actions/workflow/status/SixLabors/ImageSharp.Drawing/build-and-test.yml?branch=main)](https://github.com/SixLabors/ImageSharp.Drawing/actions)
1212
[![Code coverage](https://codecov.io/gh/SixLabors/ImageSharp.Drawing/branch/main/graph/badge.svg)](https://codecov.io/gh/SixLabors/ImageSharp.Drawing)
1313
[![License: Six Labors Split](https://img.shields.io/badge/license-Six%20Labors%20Split-%23e30183)](https://github.com/SixLabors/ImageSharp.Drawing/blob/main/LICENSE)
14-
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=flat&logo=twitter)](https://twitter.com/intent/tweet?hashtags=imagesharp,dotnet,oss&text=ImageSharp.+A+new+cross-platform+2D+graphics+API+in+C%23&url=https%3a%2f%2fgithub.com%2fSixLabors%2fImageSharp&via=sixlabors)
1514

1615
</div>
1716

18-
### **ImageSharp.Drawing** provides extensions to ImageSharp containing powerful, cross-platform 2D polygon manipulation and drawing APIs.
17+
**ImageSharp.Drawing** is a cross-platform 2D drawing library built on top of [ImageSharp](https://github.com/SixLabors/ImageSharp). It provides path construction, polygon manipulation, fills, strokes, gradient brushes, pattern brushes, and text rendering. Built against [.NET 8](https://docs.microsoft.com/en-us/dotnet/standard/net-standard).
1918

20-
Designed to democratize image processing, ImageSharp.Drawing brings you an incredibly powerful yet beautifully simple API.
19+
## Quick Start
2120

22-
Built against [.NET 6](https://docs.microsoft.com/en-us/dotnet/standard/net-standard), ImageSharp.Drawing can be used in device, cloud, and embedded/IoT scenarios.
21+
```csharp
22+
image.Mutate(ctx => ctx.Paint(canvas =>
23+
{
24+
canvas.Fill(Brushes.Solid(Color.White));
25+
canvas.Fill(Brushes.Solid(Color.Red), new EllipsePolygon(200, 200, 100));
26+
canvas.Draw(Pens.Solid(Color.Blue, 3F), new RectanglePolygon(50, 50, 200, 100));
27+
}));
28+
```
2329

2430
## License
2531

@@ -61,12 +67,12 @@ If you prefer, you can compile ImageSharp.Drawing yourself (please do and help!)
6167

6268
- Using [Visual Studio 2022](https://visualstudio.microsoft.com/vs/)
6369
- Make sure you have the latest version installed
64-
- Make sure you have [the .NET 7 SDK](https://www.microsoft.com/net/core#windows) installed
70+
- Make sure you have [the .NET 8 SDK](https://www.microsoft.com/net/core#windows) installed
6571

6672
Alternatively, you can work from command line and/or with a lightweight editor on **both Linux/Unix and Windows**:
6773

6874
- [Visual Studio Code](https://code.visualstudio.com/) with [C# Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp)
69-
- [the .NET 7 SDK](https://www.microsoft.com/net/core#linuxubuntu)
75+
- [the .NET 8 SDK](https://www.microsoft.com/net/core#linuxubuntu)
7076

7177
To clone ImageSharp.Drawing locally, click the "Clone in [YOUR_OS]" button above or run the following git commands:
7278

THIRD-PARTY-NOTICES

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
SixLabors.ImageSharp.Drawing uses or incorporates ideas, algorithms, and/or
2+
implementation guidance from third-party projects that are distributed under
3+
licenses different from the Six Labors ImageSharp.Drawing software.
4+
5+
The attached notices are provided for informational purposes only. Please
6+
review the original project repositories and license files for complete terms.
7+
8+
================================================================================
9+
10+
Blaze (https://github.com/aurimasg/blaze)
11+
License: MIT
12+
13+
Portions of this software were developed with reference to the Blaze
14+
project, including rasterization and related implementation techniques.
15+
See also: src/ImageSharp.Drawing/Processing/Backends/DEFAULT_RASTERIZER.MD
16+
17+
Copyright (c) 2023 Aurimas Gasiulis
18+
19+
The Blaze project is distributed under the MIT License. The full license text
20+
is available in the Blaze repository LICENSE file.
21+
22+
================================================================================
23+
24+
Vello (https://github.com/linebender/vello)
25+
License: Apache-2.0 OR MIT
26+
27+
Portions of this software were developed with reference to the Vello project,
28+
including GPU rasterization pipeline structure, shader stages, and related
29+
implementation techniques.
30+
See also:
31+
- src/ImageSharp.Drawing.WebGPU/WEBGPU_BACKEND.md
32+
- src/ImageSharp.Drawing.WebGPU/WEBGPU_RASTERIZER.md
33+
34+
Copyright 2020 the Vello Authors
35+
36+
The Vello project is distributed under the Apache License, Version 2.0, or the
37+
MIT License. The full license texts are available in the Vello repository
38+
LICENSE-APACHE and LICENSE-MIT files.
39+
40+
================================================================================

0 commit comments

Comments
 (0)