Releases: Bitpainter75/FerrumPix
Releases · Bitpainter75/FerrumPix
Release list
FerrumPix 0.6.0
0.6.0 — 9 July 2026 — Clone stamp, cumulative cropping, font scale
Editor
- New: Clone stamp tool Alt+click sets the source the texture is copied from; the offset is kept
for the whole stroke, and a dashed ring shows the sampling point. Blur still only averages the surroundings. - New: Color mixer in the insert panel, above the object picker: a self-drawn color wheel with a
saturation/brightness field, overlapping swatches for fill and background color with a swap gesture,
the stroke color beside them, plus opacity, hex input, and an eyedropper. - Fix: A newly selected object took over the previous object's properties. Selecting an object of a
different kind than the previously selected one overwrote it with the type defaults and the
position, size, text, and rotation still sitting in the editor buffers. Placing a new object after
deselecting one likewise inherited its color, rotation, gradient, shadow, and glow. - Fix: Clicking the canvas snapped back to the brush tool. Brush and eraser layers are stroke
containers whose bounding box often spans half the image. A click inside it — meant to drag a crop or
place a shape — selected the layer and switched the tool along with it. They are now selected through
the layer list only. - Fix: Retouching did not mark the image as modified. Anyone who only retouched and left the editor
was not asked to save and lost the work. - Fix: Cropping is repeatable. After applying, the selection rectangle wraps the whole image again,
zoom and pan re-fit, and a second crop composes into the first instead of replacing it. - Fix: Watermark offsets may be negative — now for all nine anchors, not just the centered axes.
Range ±50 % of the image edge. - Fix: Hidden layers could still be selected by clicking the canvas, which also switched the tool to
the one that owns them. - Fix: Leaked a full preview bitmap whenever a render was cancelled by the next one — which happens
on every slider drag over a large image. - Internal: retouching draws through Skia shaders instead of pixel by pixel, and no longer floods the
history with one entry per mouse move. - Internal: dragging an object no longer re-renders its overlay bitmap (shadow and glow included) on
every mouse move; the render only depends on size and appearance, not on position or rotation. - Internal: the editor no longer holds its base-image cache after closing, and the color controls
unsubscribe from the view model when they leave the visual tree. - Removed: the editor's own export dialog. It was never wired to a button; "save as" and "convert to"
cover the same ground. - Internal: brush strokes are stored as point lists rather than a string in the layer's text field. The
renderer parses nothing, and undo snapshots share the immutable strokes instead of duplicating every
point.
Settings
- New: Font scale in whole steps from −1 to +6, applied immediately without a restart. Found under
Appearance. - New: Link to the homepage above the GitHub repository.
- Fix: Cancel discarded too much. The snapshot was taken at program start, not when the dialog was
opened. Cancel therefore also reverted what had been changed elsewhere in the meantime: the info bar
in viewer and editor, both filmstrips, the gallery's view mode, and the JPEG quality. - Fix:
settings.jsonis written atomically. A crash mid-save left a truncated file that discarded
all settings, watermark presets, and saved searches on the next start. Unreadable files are now set
aside assettings.json.corrupt.
Gallery, viewer and window
- Fix: The folder watcher dropped events and hid its own failures. Watching was switched on in the
object initializer, before the handlers were attached, so anything happening in that window was lost.
A failure to create the watcher — typically the inotify limit on Linux — was swallowed silently;
it now goes to the diagnostic log. - Fix: Duplicating blocked the UI thread on a task. The copy ran through a synchronous wait on an
async method, one step away from a deadlock, and copied the file on the UI thread. Copying, moving,
and pasting now run on a background thread. - Fix: Cancelling the close dialog left video playback shut down. The player was torn down before it
was decided whether the window closes at all.
Gallery and metadata
- Fix:
.icofiles are displayed. SkiaSharp does not know the format; the newIcoPreviewService
reads the container itself — embedded PNG entries as well as DIBs with color table and transparency
mask. - Fix: The active folder stays selected in the tree when returning from the settings. The view is
rebuilt on mode change and lost its selection in the process. - New: Focal length as 35 mm equivalent. Search, sorting, and the
{focal}placeholder use the
equivalent value when the camera writes it — otherwise phone shots at 4.2 mm sort between genuine
ultra-wides.
Performance
- Fix: The settings dialog opens immediately. It used to count every single file in the thumbnail
cache, synchronously on the UI thread. Count and bytes now live in the index file and are only
recollected when the folder has changed, which a single directory stat reveals. Collection runs in
the background.
[0.5.0]
Added
- Info Panel: Previously used keywords are now offered as suggestions.
- Gallery: New context menu function "Resize Image".
- Gallery: New context menu function "Remove Metadata" (EXIF, IPTC, XMP).
- Gallery: New context menu function "Apply Watermark".
- Gallery: New "Create Watermark" tool (under Text and Image):
- Multiple watermarks can be defined, with settings saved in Settings.
- Image import similar to the Image object.
- Watermarks define size, rotation, and opacity.
- Positioning works like "Enlarge Canvas", using X/Y distance from the edge – automatically adapts regardless of portrait or landscape orientation.
- Gallery: Small icons on images indicate whether EXIF, IPTC, or XMP data is present.
- Gallery: Favorite star buttons are displayed on mouseover.
- Gallery: Metadata badges are displayed on mouseover in an overlay at the top right with an accent-colored border.
- Gallery: Editing existing search lists via the sidebar context menu (reopens the overlay dialog with the existing parameters).
- Gallery: XMP rating is now transferred to the star rating.
- Editor: Lightroom presets can be loaded from
.xmpfiles and applied to the image. - Editor (Filter): New group with LUT import for
.cubefiles. - Editor (Filter): Tone curve, 8-channel HSL, split toning, and white balance are now also imported from XMP.
- Editor (Filter): Split toning implemented, including the corresponding data model fields.
- Editor: Background color when rotating with canvas enlargement is now adjustable.
- Editor (Shadow): Light angle is now adjustable.
- Editor (Text): Text objects can now be created with a gradient.
- Editor (Sliders): Values can now also be entered via an input field.
- Editor (Shapes & Symbols): Can now be displayed distorted.
- Editor (Frame Effect): Additional options such as rounded corners and further frame styles.
- Editor (Details & Effects): New effects with corresponding adjustment sliders:
- Remove / add dust and scratches
- Remove / add haze
- Noise reduction / add noise
- Structure
- Glow
- Editor (Filter): New filter "Aged Photo".
- Editor (SVG Objects): Gradient effect now supported for SVG objects.
Changed
- Viewer: No scrollbars are shown anymore when zoom is fit-to-window.
- Gallery: Zoom +/- in the footer now matches the display in Viewer and Editor.
- Gallery: Metadata is no longer read only from RAW files, but from all formats (if available).
- Gallery: Metadata badges now have a semi-transparent black shadow for better readability.
- Gallery: "Resize Image" is no longer shown in the context menu for RAW files.
- Editor (Vignette): Effect reworked – previously too weak; new settings for transition, roundness, feather, and position.
- Editor (Sliders): Finer adjustment via mouse wheel; double-clicking the handle resets it to the default value.
- Editor: "Grain" renamed to "Grain Intensity".
- Editor: "Glow" renamed consistently across the UI.
- Version updated to 0.5.0 in packaging and settings.
Fixed
- Info Panel: Scrolling with the mouse no longer changes the image.
- Gallery: Context menu no longer shows unnecessary scroll buttons when the content already fits.
- Gallery: The "Resize Image" dialog now sets focus directly on the width field when opened.
- Gallery: Tab key now correctly restricts focus switching to overlay dialogs instead of the gallery behind them.
- Gallery: Metadata from PNGs is now correctly stored in the catalog/index.
- Gallery: The metadata overlay now correctly displays all available metadata.
- Gallery: Switching from a search list to Viewer/Editor and back now keeps the search list selected, instead of jumping to the last folder.
- Editor (Filter): The "Undo" button now also reverts applied Lightroom presets.
- Editor (Details & Effects): Fixed existing effects that previously did not work correctly.
- Editor: The "Rename File" dialog now only allows editing the filename without the extension.
- Editor: Selecting a shape or symbol now correctly shows the "Shapes and Symbols" tool (instead of "Text and Image"); the corresponding properties are now available there.
- Editor (SVG Objects): Effects are now correctly displayed in selected mode.
- Editor (SVG Objects): The selected-state view now matches the final baked view, especiall...