A modern desktop image editor built with C# and Avalonia UI.
Pixellum combines a layer-based workflow, custom rendering, image adjustments, and essential drawing tools in a clean cross-platform desktop app.
Pixellum is a raster image editor for desktop use, built around a straightforward editing workflow with layers, color tools, canvas operations, and export support.
The project is organized as a full Avalonia desktop application with dedicated folders for core image logic, rendering, controls, view models, and views. It includes a custom canvas workflow rather than a simple demo-style editor, which makes the repo more interesting for people exploring image editing architecture in C#.
- Built with .NET 9 and Avalonia UI
- Layer-based editing workflow
- Custom rendering and compositing structure
- Undo and redo support through a history system
- Image adjustments such as levels, curves, and color balance
- Canvas resize, resample, rotate, and flip operations
- PNG export workflow
- Clean desktop UI with dialogs, panels, and editing controls
|
|
|
|
Pixellum is more than a UI shell. The repository includes separate core files for document management, layers, history, stroke commands, bitmap creation, file handling, color math, pixel utilities, and image adjustments, which makes it useful both as an app and as a reference project for building desktop graphics software in C#.
The project also exposes a real editor structure around the canvas, with panels and dialogs for things like history, layers, new document creation, canvas sizing, image sizing, and adjustments. That gives the repo practical value for developers who want to study how an image editor is split across UI, rendering, and core logic.
The Core/ folder contains the main editing logic, including:
Document.csfor document stateLayer.csfor layer representation and dirty region handlingHistoryManager.csfor undo and redoStrokeCommand.csfor undoable drawing actionsAdjustments.csfor image adjustment operationsColorMath.csfor blend mode parsing and color mathFileHandler.csfor open, save, and export handlingPixelUtils.csandBitmapFactory.csfor pixel and bitmap helpers
The repo is separated into clear application layers:
Controls/for custom controlsRendering/for rendering and compositing logicViewModels/for MVVM view modelsViews/for dialogs and UI viewsMainWindow.axamlandMainWindow.axaml.csfor the main editor window and command wiring
| Action | Supported Formats |
|---|---|
| Open | PNG, JPG, JPEG, BMP, GIF, WebP |
| Save | PNG |
| Export | PNG |
- .NET 9.0
- Avalonia 11.3.8
- Avalonia Desktop
- Avalonia Fluent Theme
- Avalonia ColorPicker
- C#
Pixellum/
├── assets/ # Screenshots and repo media
├── Controls/ # Custom editor controls
├── Core/ # Document, layers, history, file handling, adjustments
├── Rendering/ # Rendering and compositing logic
├── ViewModels/ # View models
├── Views/ # Dialogs and editor panels
├── App.axaml
├── App.axaml.cs
├── MainWindow.axaml
├── MainWindow.axaml.cs
├── Program.cs
├── Pixellum.csproj
└── Pixellum.sln
- .NET 9 SDK
git clone https://github.com/SmitBdangar/pixellum.git
cd pixellum
dotnet rundotnet builddotnet publish -c ReleaseContributions are welcome through issues and pull requests. For larger changes, open an issue first to discuss the proposed update.
Built by Smit Dangar