ChromaFx 0.4.0-beta.33

This is a prerelease version of ChromaFx.
dotnet add package ChromaFx --version 0.4.0-beta.33
                    
NuGet\Install-Package ChromaFx -Version 0.4.0-beta.33
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ChromaFx" Version="0.4.0-beta.33" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ChromaFx" Version="0.4.0-beta.33" />
                    
Directory.Packages.props
<PackageReference Include="ChromaFx" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ChromaFx --version 0.4.0-beta.33
                    
#r "nuget: ChromaFx, 0.4.0-beta.33"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ChromaFx@0.4.0-beta.33
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ChromaFx&version=0.4.0-beta.33&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ChromaFx&version=0.4.0-beta.33&prerelease
                    
Install as a Cake Tool

ChromaFX — High-performance .NET image processing library

Build Status NuGet NuGet License

Modern, high-performance .NET image processing and drawing library.

Key points:

  • Pure C#, zero dependency implementation
  • Image encoding/decoding (PNG, JPEG, GIF, BMP)
  • Drawing primitives and effects
  • Pipeline-friendly API for efficient image processing

Packages

ChromaFX is distributed as multiple NuGet packages to suit different needs:

Package Description NuGet Link
ChromaFx Main package. Modern, high-performance image processing for .NET 8 and 10. ChromaFx
ChromaFx.Core Core types and abstractions for ChromaFX. ChromaFx.Core
ChromaFx.IO Image file IO, encoding/decoding support. ChromaFx.IO
ChromaFx.Processing Image processing algorithms and effects. ChromaFx.Processing
ChromaFx.Legacy Compatibility package for legacy .NET projects and APIs. ChromaFx.Legacy
  • Use ChromaFx for new projects targeting .NET 8 or .NET 10.
  • Use ChromaFx.Core, ChromaFx.IO, and ChromaFx.Processing for modular usage or advanced scenarios.
  • Use ChromaFx.Legacy if you need support for older APIs or migration from previous versions.

Provides backward compatibility with the original Structure.Sketching API surface. Use only if migrating existing projects — for new development, prefer ChromaFx

Installation

Install via NuGet package:

dotnet add package ChromaFx

For modular usage:

dotnet add package ChromaFx.Core
dotnet add package ChromaFx.IO
dotnet add package ChromaFx.Processing

For legacy support:

dotnet add package ChromaFx.Legacy

Getting Started

using ChromaFx;

class Program
{
    static void Main()
    {
        // Load, transform, and save
        Image.Load("input.png")
            .Apply(new Resize(200, 200, ResamplingFiltersAvailable.Bilinear))
            .Apply(new Rotate(90))
            .Apply(new Invert())
            .Save("output.png");

        // Or use the fluent pipeline API
        Image.Load("input.png")
            .Process(p => p
                .Resize(200, 200)
                .Rotate(90)
                .Invert()
            )
            .Save("output.png");
    }
}

API notes

  • Image.Load(path) and Image.Load(stream) require ChromaFx.IO (included in the main ChromaFx package).
  • Filters live under ChromaFx.Processing.Filters.*; common types are re-exported via global using when you reference the meta-package.
  • Apply(IFilter) mutates the image in place and returns it for chaining. Use Copy() when you need to preserve the original.

Requirements

  • .NET 8 or .NET 10 SDK (builds for both target frameworks)

License

Apache 2.0 - see LICENSE

Attribution

This project is a fork of Structure.Sketching, originally developed by JaCraig under the Apache License 2.0.

Modifications and ongoing maintenance by Ho Tzin Mein (2023–2025).

Roadmap

  • Modularization – Core, IO, Processing, and Legacy packages split out.
  • 🔜 API Modernization – Unified load/apply/process surface on Image.
  • Extended Features – Advanced algorithms such as pixel upscaling, new filters, and effects.

Contributing

Contributions, bug reports, and suggestions are welcome! The roadmap may evolve as the project grows — feel free to open an issue or pull request if you'd like to help shape ChromaFX.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0-beta.33 86 6/16/2026
0.4.0-beta.29 178 9/29/2025
0.4.0-beta.28 175 9/29/2025
0.4.0-beta.27 180 9/29/2025
0.4.0-beta.25 180 9/29/2025
0.4.0-beta.24 154 9/28/2025
0.4.0-beta.23 152 9/28/2025
0.4.0-beta.22 145 9/28/2025
0.4.0-beta.19 115 9/27/2025
0.4.0-beta.18 134 9/26/2025
0.4.0-beta.14 206 9/20/2025