mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-25 10:37:11 -06:00
Heal and clone spots stored as crs:RetouchAreas (Mask/Ellipse, Mask/CircularGradient or a brushed Mask/Paint target; SourceX/OffsetY as the source's absolute position, honoured only when the source was set explicitly; Opacity and Feather 0..1) and the legacy crs:RetouchInfo list become our spots when a sidecar, embedded XMP, XMP preset or .lrtemplate is read. Width fractions are converted to long-edge fractions with the target's aspect, like radial masks. Unsupported spot masks are reported as `Spot: <kind>`. Format established by observing what a sidecar written for a healed photo contains; clean-room. Tests: heal with explicit source, clone with automatic source, brushed removal, circular-gradient spot, unsupported mask reported, portrait-target scaling, legacy list on its own, and a render test. docs/xmp-interop.md gains a Spot removal section; LR-META-XMP row updated. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>