FerrumPix is a desktop photo management and editing application for Linux and Windows, built with Avalonia UI and VB.NET. Project Website FerrumPix.app
Status: Active development, but already feature-rich in the core areas gallery, viewer, editor, and settings. The current focus is less on basic functionality and more on stabilization, UX refinement, and structural cleanup as the application grows.
Gallery
- Folder-tree navigation (multiple drives on Windows), grid/list view, sorting, thumbnail caching; the folder tree auto-scrolls the selected entry into view, centered when possible
- Ratings (stars), favorites, tags, saved searches shown as a navigable tree (filters: favorite, rating, file type incl. RAW/non-RAW, subfolders)
- Extended search: combine text terms with AND/OR (e.g.
urlaub OR strand, quoted phrases for multi-word terms), plus structured conditions on image data and EXIF (width/height, camera, ISO, aperture, focal length, date taken), combinable with a single AND/OR switch; EXIF/dimensions are read and cached on first use if not yet known - File operations: copy/cut/paste, rename/batch rename, duplicate, create folder, delete (with confirmation), export selected, batch selection, reveal in file manager, copy path
- Batch rename: pattern-based with counters (
#,###), and placeholders for the original name/extension, file date, EXIF date taken, image width/height, camera, ISO, aperture, and focal length; the last-used pattern is remembered between sessions - Batch format conversion: convert selected images to JPG/PNG/WEBP (with quality setting) in place, skipping files already in the target format and auto-numbering on name collisions
- Further batch operations on the selection: resize (target size or scale percentage, with lock-aspect and interpolation choice), apply a saved watermark preset, and strip all metadata from the files
- Collage creation: Grid, Hero (one large image + the others framing it — top/bottom/left/right/center, position pickable via the same anchor-grid as the editor's canvas tool, or by clicking the desired image in the live preview), and Random (jittered size/rotation per photo) layouts; adjustable width/columns/margin, a per-image border, background color/format/quality, a zoomable/pannable preview with a fit button, and a reshuffle button that randomizes image order (and, in Random mode, size/rotation) across all three layouts
- Camera RAW support (CR2, CR3, NEF, ARW, DNG, PEF, RW2) alongside standard formats
- SQLite-backed library (metadata, ratings, tags, cached EXIF/dimensions for search)
- EXIF display (via MetadataExtractor)
- Video files (MP4, MOV, MKV, AVI, WebM, M4V) show a poster-frame thumbnail with a play badge
Viewer
- Fullscreen view with fast switching between images, zoom/pan, rotate/flip
- Slideshow with configurable interval, filmstrip navigation
- Inline video playback (play/pause, seek, mute) in both windowed and fullscreen mode
- Rate, favorite, tag, and delete images directly from the viewer; jump straight into the editor
- Info sidebar with General/EXIF/IPTC/XMP tabs and a live histogram
Editor (non-destructive, with undo/redo)
- Crop (with presets), image resize, rotate/straighten (with auto canvas expand), flip, and canvas resize with anchor picker
- Adjust: exposure, brightness, contrast, highlights/shadows, whites/blacks, tone curve (RGB, luminance, and the individual red/green/blue channels)
- Color: white balance, temperature/tint, vibrance/saturation, split toning, and an 8-band HSL color mixer — pick a color band on a color wheel, then dial in its hue/saturation with a shared pair of sliders
- Filters: built-in filter presets with a strength slider, plus Lightroom XMP preset import and
.cubeLUT support - Details: clarity, sharpening, softening/noise reduction (Gaussian/median), structure, haze, glow, grain/noise, and dust/scratch style effects
- Effects/Frame: vignette (size, transition, roundness, feather, freely placeable center) and border/frame controls with six edge styles (solid, dashed, jagged, double, dotted, wavy), color picker, and rounded-corner support
- Paint tool: brush, eraser, and a blur/retouch brush, each with size/hardness/opacity
- Rectangle selection tool: drag a selection on the image, then copy it into a new movable object (also via Ctrl+C/Ctrl+V, repeatable paste) or fill it with a solid color or linear/radial gradient (gradient direction/invert supported)
- Insert objects: text, watermark, shapes (rectangle, ellipse, square, triangle, cone, pyramid, trapezoid, diamond, spiral, droplet, speech bubble, line, arrow), symbols/SVGs, images, and QR codes
- Per-object properties: fill (solid or gradient), stroke color/width, opacity, rotation, position/size, anchor handling, plus separate shadow and glow controls (color, offset, blur, strength, corner radius where applicable) — edited live directly on the canvas or via the sliders
- Watermarks can be stored as named presets (text or image, with anchor, offset, size, rotation, opacity, font, and color) and reapplied later, including as a batch operation from the gallery
- Side panel with three tabs: the active tool, the object list (reorder front/back, duplicate, show/hide, delete; drag-handles for move/resize/rotate on canvas), and a running history of the applied steps
- Central color picker (color wheel, hex input, recent colors) with a built-in eyedropper to sample any color straight from the image
- Info sidebar with the same General/EXIF/IPTC/XMP tabs and live histogram as the viewer
- Before/after comparison slider, save/load non-destructive edit recipes
Settings
- Theme (light/dark/darkgrey/lightgrey) and accent color
- Language: auto-detect, German, English, Spanish, French, Italian
- Thumbnail size/quality, JPEG export quality, filmstrip visibility, and other per-view preferences
- Preserve original EXIF/XMP metadata when using "save as", export, and format conversion (on by default)
- UI scale, video hardware acceleration toggle, transparency background (checkerboard or solid color), startup folder/image behavior, hidden folders/breadcrumbs
- Thumbnail cache management: size limit, per-folder or full cache cleanup, database cleanup
- Optional diagnostic log for preview/playback errors, written to
%LocalAppData%/FerrumPix/logs/diagnostics.log - Window position/size and last-used folder are remembered between sessions
- Avalonia UI 11.3 (Fluent theme) — cross-platform UI framework
- VB.NET on .NET 10
- ReactiveUI for MVVM
- SkiaSharp for image processing/rendering
- Svg.Skia for rendering SVG icons and SVG objects
- Microsoft.Data.Sqlite for the library
- MetadataExtractor for EXIF data
- QRCoder for QR code objects
- LibVLCSharp for video thumbnail extraction and playback
- Tabler-Icons A set of 6146 free MIT-licensed high-quality SVG icons
All packages are self-contained — they bundle the .NET runtime, so no separate .NET installation is required to run them.
Video playback on Linux: requires VLC (or at least
libvlc) to be installed system-wide, e.g.sudo apt install vlcorsudo pacman -S vlc— it cannot be bundled into the AppImage/Flatpak the same way the Windows build bundles it. Without it, FerrumPix still runs normally; video files just won't show a thumbnail or play.
Compiling the project (as opposed to just running a pre-built package) requires the .NET SDK 10 or newer.
dotnet build FerrumPix.sln
dotnet run --project FerrumPix.vbproj





