ChromaFx.Processing 0.4.0-beta.41

This is a prerelease version of ChromaFx.Processing.
There is a newer version of this package available.
See the version list below for details.
dotnet add package ChromaFx.Processing --version 0.4.0-beta.41
                    
NuGet\Install-Package ChromaFx.Processing -Version 0.4.0-beta.41
                    
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.Processing" Version="0.4.0-beta.41" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ChromaFx.Processing" Version="0.4.0-beta.41" />
                    
Directory.Packages.props
<PackageReference Include="ChromaFx.Processing" />
                    
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.Processing --version 0.4.0-beta.41
                    
#r "nuget: ChromaFx.Processing, 0.4.0-beta.41"
                    
#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.Processing@0.4.0-beta.41
                    
#: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.Processing&version=0.4.0-beta.41&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ChromaFx.Processing&version=0.4.0-beta.41&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 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 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 10 SDK

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 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 (2)

Showing the top 2 NuGet packages that depend on ChromaFx.Processing:

Package Downloads
ChromaFx

Modern, high-performance .NET image processing and drawing library. Supports PNG, JPEG, BMP, and GIF, with pipeline-friendly APIs. Targets .NET 10.

ChromaFx.PixelArt

Pixel-art upscaling and rotation for ChromaFx. Scale2x/3x/4x/8x (EPX), Hq2x–4x, CleanEdge, Eagle/SaI, RotSprite RotateSprite, and CleanEdgeRotate.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.6.2 48 11/6/2026
0.6.1 61 11/4/2026
0.6.0 85 11/3/2026
0.5.0-beta.53 53 11/3/2026
0.5.0-beta.52 50 11/3/2026
0.5.0-beta.51 45 11/3/2026
0.5.0-beta.50 44 11/3/2026
0.5.0-beta.49 46 11/3/2026
0.5.0-beta.48 51 11/3/2026
0.5.0-beta.47 45 11/3/2026
0.5.0-beta.46 47 11/3/2026
0.5.0-beta.45 70 10/31/2026
0.4.0-beta.44 79 10/24/2026
0.4.0-beta.42 69 10/20/2026
0.4.0-beta.41 73 10/20/2026
0.4.0-beta.33 134 6/16/2026
0.4.0-beta.29 209 9/29/2025
0.4.0-beta.28 203 9/29/2025
0.4.0-beta.27 186 9/29/2025
0.4.0-beta.25 202 9/29/2025
Loading failed