photocraft/docs
Bart Louwers 0f16bce0c5
Add the Magnetic Lasso tool (#864)
* Add the Magnetic Lasso tool

A selection border that snaps to edges as the pointer moves, in the
Lasso (L) flyout after the Polygonal Lasso.

- photocraft-algo `magnetic`: live-wire edge tracing (Mortensen &
  Barrett 1995): Sobel strength, non-maximum suppression and gradient
  direction link costs, a shortest path inside a corridor of the
  detection width around the pointer's path, sub-pixel edge centres.
  Pixels are read lazily in 128 px blocks.
- Engine: `EdgeSource` (the active pixel layer, else the composite) and
  `select.magneticLasso`: rough points in, a border along the edges out;
  `trace: false` selects a given outline, which is how the tool commits.
- UI: click to start, move to trace (button up or down), points fasten
  by themselves (Frequency), click fastens, Alt-click straight, Alt-drag
  freehand, Backspace/Delete removes points, click the first point,
  double-click or Enter closes, Esc cancels, [ ] change the width.
  Options bar: Width, Contrast, Frequency, tablet pressure. `ui.inspect`
  reports the border in progress.
- The Lasso and Polygonal Lasso now apply the options bar's Feather;
  `select.lasso` rejects a feather outside 0..1000.
- Icon adapted from Noun Project's "Magnetic Lasso Tool" by Lil' Seal
  (CC BY 3.0, licence file and ATTRIBUTION.md row).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* it: translate the Magnetic Lasso strings (Italian landed after this PR was written)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-07 19:42:45 -04:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms, attribution 2026-10-04 10:06:17 -04:00
images Preferences: add an Apply button (#325) (#325) 2026-10-06 11:29:06 -04:00
architecture.md Open HEIC/HEIF photos (#355) (#372) 2026-10-07 10:20:40 -04:00
camera-raw-histogram.md Camera Raw: read and write settings as a live PSD Smart Filter (part of #215) (#459) 2026-10-07 17:59:16 -04:00
camera-raw-zoom.md Rework Camera Raw filter preview and navigation (#781) 2026-10-07 18:40:24 -04:00
context-menu-inventory.md Add the Magnetic Lasso tool (#864) 2026-10-07 19:42:45 -04:00
context-menu-parity.md Add the Magnetic Lasso tool (#864) 2026-10-07 19:42:45 -04:00
contributing.md Fonts: use craft-fonts as an optional build input; move the Japanese fonts out (#353) (#353) 2026-10-06 18:21:46 -04:00
control-protocol.md Add the Magnetic Lasso tool (#864) 2026-10-07 19:42:45 -04:00
development.md DX12: load the shader compiler from System32 or beside the exe, never from PATH (#712) (#817) 2026-10-07 14:48:27 -07:00
localization-ko.md Improve Korean terminology and dynamic UI translation coverage (#604) 2026-10-07 16:32:47 -04:00
localization-zh-hans.md i18n: complete Simplified Chinese catalog and localize brush sections (#359) 2026-10-07 07:46:52 -04:00
localization.md Italian UI translation (it) (#853) 2026-10-07 19:13:01 -04:00
parity-estimate.md Vertical type (tategaki): lay out, render, edit and round-trip (#199) (#246) (#246) 2026-10-05 11:48:14 -04:00
parity.md Sandboxed WebAssembly plug-ins: photocraft-plugins (wasmi), plugin.* commands, Filter › Plug-ins (#67) 2026-10-04 16:08:28 -04:00
plugins.md Sandboxed WebAssembly plug-ins: photocraft-plugins (wasmi), plugin.* commands, Filter › Plug-ins (#67) 2026-10-04 16:08:28 -04:00
release-playbook.md Release playbook now lives in craftrules; keep a pointer 2026-10-01 13:27:12 -04:00
releasing.md fix(linux): AppImage registers its desktop entry and icon on launch (#617) 2026-10-07 16:12:00 -04:00
roadmap.md Add the Magnetic Lasso tool (#864) 2026-10-07 19:42:45 -04:00
scorecard.md Large PSBs open with their pixels: decode planes past 2 GiB, plus 4-5 GB PSB fixtures (#375) (#782) 2026-10-07 18:59:39 -04:00
ui-design.md ⌘⌥⌃-click on the canvas selects the topmost layer under the pointer (#813) 2026-10-07 18:02:23 -04:00