ChromaFx.Processing 0.4.0-beta.29

This is a prerelease version of ChromaFx.Processing.
dotnet add package ChromaFx.Processing --version 0.4.0-beta.29
                    
NuGet\Install-Package ChromaFx.Processing -Version 0.4.0-beta.29
                    
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.29" />
                    
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.29" />
                    
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.29
                    
#r "nuget: ChromaFx.Processing, 0.4.0-beta.29"
                    
#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.29
                    
#: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.29&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ChromaFx.Processing&version=0.4.0-beta.29&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+. 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 later.
  • 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

Classic API (currently available)

using ChromaFx;
using ChromaFx.IO;
using ChromaFx.Processing;
using ChromaFx.Processing.Transforms;

class Program
{
    static void Main()
    {
        // Load an image from file
        var image = Image.Load("input.png");

        // Apply processing using the Apply() method
        image = image.Apply(new Resize(200, 200))
                     .Apply(new Rotate(90))
                     .Apply(new Invert());

        // Save the result
        image.Save("output.png");
    }
}

Modern API ⚠️ (preview / in development)

using ChromaFx;

class Program
{
    static void Main()
    {
        var image = Image.Load("input.png")
                         .Process(p => p
                             .Resize(200, 200)
                             .Rotate(90)
                             .Invert()
                         )
                         .Save("output.png");
    }
}

Requirements

  • .NET 8 or later

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 – Introducing a cleaner, pipeline-friendly API (breaking changes).
  • 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 was computed.  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 (1)

Showing the top 1 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. Ideal for new .NET 8+ projects.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0-beta.29 116 9/29/2025
0.4.0-beta.28 115 9/29/2025
0.4.0-beta.27 111 9/29/2025
0.4.0-beta.25 112 9/29/2025
0.4.0-beta.24 90 9/28/2025
0.4.0-beta.23 91 9/28/2025
0.4.0-beta.22 91 9/28/2025