SkiaSharp Migration Check for ImageSharp

Flags SixLabors ImageSharp 3+, Drawing 2+, Fonts 2+ and ImageSharp.Web 3+ references that fall under the Six Labors Split License, with the SkiaSharp (MIT) replacement for each line. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Get the complete version $29

This page is the working piece. The full pack has everything below.

Flags the Six Labors lines under the Split License and the SkiaSharp fix for each

Staying on ImageSharp means a Six Labors commercial licence from 799 USD a year for up to 10 developers.

Buy the full version — $29
Want the full version?
Enter your email and we send the download link.
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

SkiaSharp Migration Check for ImageSharp

skiasharp migration: 6 findings in one 16-line .csproj. That is what a .NET team at a company with 1M USD or more annual revenue gets back when the project file of a Linux-hosted thumbnail API is checked against the Six Labors Split License.

What Six Labors changed, and when

SixLabors.ImageSharp 3.0.0 was published on nuget.org on 2023-03-01. Its licence changed from Apache-2.0 to the Six Labors Split License. The same switch happened at SixLabors.Fonts 2.0.0, SixLabors.ImageSharp.Drawing 2.0.0 and SixLabors.ImageSharp.Web 3.0.0. On 2026-09-29 that is 1308 days.

The Split License keeps Apache-2.0 terms for open source or source-available software, for transitive dependencies, for non-profits and registered charities, and for for-profit companies with less than 1M USD annual gross revenue. A company above that line that installs the package directly needs a commercial licence. Six Labors publishes 799 USD a year for up to 10 developers.

SkiaSharp is MIT licensed.

The project file

<Project Sdk="Microsoft.NET.Sdk.Web">
  <!-- Thumbnail API for the product catalogue, deployed as a Linux container -->
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
    <PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.7" />
    <PackageReference Include="SixLabors.Fonts" Version="2.1.3" />
    <PackageReference Include="SixLabors.ImageSharp.Web" Version="3.2.0" />
    <PackageReference Include="SixLabors.ImageSharp.Web.Providers.AWS" Version="*" />
    <PackageReference Include="System.Drawing.Common" Version="8.0.0" />
    <PackageReference Include="Serilog.AspNetCore" Version="8.0.3" />
  </ItemGroup>
</Project>

The check returns six findings:

Serilog is not flagged. A * version resolves to the newest release, which today is under the Split License. System.Drawing.Common 6+ is Windows-only, so it throws in a Linux container.

Why a version list is not enough

dotnet list package prints requested and resolved versions. It never prints a licence. An automated update PR from ImageSharp 2.1.x to 3.x changes one number in the diff, and the licence line sits at a different major for each package: 3 for ImageSharp and Web, 2 for Drawing and Fonts.

The 13 rules

Four licence-line package rules, one for floating versions, one info rule for Apache-2.0 versions one major below the line, one for System.Drawing.Common on non-Windows targets, two for SkiaSharp native assets (missing or mismatched), and four C# rules: using SixLabors.ImageSharp, Image.Load, .Mutate and .SaveAsJpeg, each with its SkiaSharp call.

Try it on your own file

The free web page and the VS Code extension use the same engine. Paste one .csproj, Directory.Packages.props, packages.config or .cs file and every Split License line comes back with its SkiaSharp fix; the SkiaSharp version of the project above returns 0 findings. A licence key adds a whole-solution scan and one Markdown migration checklist for the licence review ticket.

15 seconds — what it actually does

Questions people ask

What does SkiaSharp Migration Check do?

It reads .csproj, Directory.Packages.props, packages.config and .cs files and flags every Six Labors reference under the Six Labors Split License: ImageSharp 3.0.0+, ImageSharp.Drawing 2.0.0+, Fonts 2.0.0+, ImageSharp.Web 3.0.0+ and floating versions. Each finding names the SkiaSharp (MIT) replacement. It runs 13 rules, including System.Drawing.Common on Linux targets and missing SkiaSharp native assets.

Who is this for?

.NET developers and tech leads at for-profit companies with 1M USD or more annual gross revenue that reference ImageSharp directly, for example a thumbnail API or a PDF renderer running in a Linux container. Under the Six Labors Split License that direct reference needs a commercial licence, so these teams either pay Six Labors or move image code to SkiaSharp.

Why not just run dotnet list package or ask a chatbot?

dotnet list package prints requested and resolved versions, never the licence, and an automated dependency update from ImageSharp 2.1.x to 3.x changes only a version number in the diff. The licence line sits at different majors per package: ImageSharp 3, Drawing 2, Fonts 2, Web 3. The check knows each line and names the SkiaSharp replacement for every package and call.

What is free and what needs a licence key?

Checking one file is free and complete: open a project file or .cs file in VS Code, or paste it on the web page, and every Split License line appears with its SkiaSharp fix. A licence key, one payment, adds scanning every project in the solution at once and exporting one Markdown migration checklist for the licence review ticket.

What does staying on ImageSharp cost?

Six Labors publishes commercial licence tiers of 799 USD a year for up to 10 developers, 1299 USD a year for 11 to 20 developers and 4999 USD a year for unlimited developers, or 80, 130 and 520 USD a month. SkiaSharp is MIT licensed, so moving the image code removes that recurring cost for companies above the revenue line.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.