vectorcraft/crates
bflatastic c9fac95760 Image Trace: a 16 megapixel photo is traced in 0.9 GB, not 3.9
Every colour layer took a mask, component labels, a fill stack and an edge map the size of the whole image,
and as many layers were traced at once as the machine has cores.

- A layer is traced within the box its pixels lie in.
- The stack that fills components holds `u32` indices (a mask has at most 64 million pixels).
- Layers are traced as many at a time as fit in half a gigabyte (about ten bytes a pixel of the largest
  layer's box each), on however many cores.

Peak memory above the image itself, photo-like image (docs/image-trace-quality.md), before -> after:
- 16 megapixels: High Fidelity Photo 3,856 -> 880 MB (2.85 -> 3.65 s), Low Fidelity Photo 1,972 -> 754 MB
  (1.49 -> 1.80 s), 16 Colors 1,625 -> 298 MB, Shades of Gray 852 -> 407 MB, Default 256 -> 199 MB
- 4 megapixels: High Fidelity Photo 981 -> 643 MB, 16 Colors 408 -> 122 MB, times unchanged
The traces are the same, path for path.
2026-10-13 06:38:10 +07:00
..
affinity Part of #666: Affinity rectangles keep per-corner radii and straight corners 2026-10-12 15:41:46 +07:00
brush #1172: share an object's appearance with its undo history until it changes 2026-10-11 23:27:21 +07:00
cad fix(cad): a closed control-point DXF SPLINE is read as closed (#1299) 2026-10-12 15:16:43 +07:00
color Review: palette writing keeps the swatches PaletteFormat::holds names; ROADMAP (#1110) 2026-10-11 11:33:07 +07:00
doc Fix #1448, #1460: Transform Objects in the Transform dialogs and Transform Each, and Reflect across an angle 2026-10-13 02:54:08 +07:00
effects 3D and Materials: Inflate takes Twist, Taper and Cap 2026-10-13 05:22:00 +07:00
engine Part of #1429: path, Pathfinder and live-object commands add and remove many objects in one pass 2026-10-13 05:21:31 +07:00
eps Fix #1423: an Affinity text frame too short for its first line is made taller instead of showing nothing 2026-10-12 23:42:56 +07:00
format #1244: reserve at most 64 MB for a file's entry before its data is read 2026-10-12 11:03:01 +07:00
geom Part of #1377: Rectangular Grid and Polar Grid tool options (skew, frame, compound path, fill) 2026-10-12 19:22:36 +07:00
mcp Fix #1471: making and restyling type reports text that doesn't fit its frame 2026-10-13 03:27:13 +07:00
metafile #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
pathops Fix #1462: Split Into Grid has its row and column sizes, gutters, totals, Add Guides and Preview 2026-10-13 02:48:36 +07:00
pdf PDF import: an editor's .ai keeps its RGB numbers, and a fill faded or masked by its group keeps its stroke apart 2026-10-12 23:06:19 +07:00
plugins Plug-ins: numeric defaults stay in their declared range 2026-10-13 02:21:35 +07:00
render 3D and Materials: Inflate takes Twist, Taper and Cap 2026-10-13 05:22:00 +07:00
svg SVG export: knockout groups of opaque art draw in order, without masks 2026-10-12 23:06:34 +07:00
testkit Fix #1387: a .ai whose PDF part is only text opens from it 2026-10-12 19:50:53 +07:00
text Type: frames and paths beyond 1,000,000,000 pt hold no text, and layout limits its search for room 2026-10-13 00:34:40 +07:00
three-d 3D and Materials: Inflate takes Twist, Taper and Cap 2026-10-13 05:22:00 +07:00
tools Direct Selection: a selected path's anchor is picked before one of an object above it (fixes #1508) 2026-10-13 05:03:41 +07:00
trace Image Trace: a 16 megapixel photo is traced in 0.9 GB, not 3.9 2026-10-13 06:38:10 +07:00
ui-egui 3D and Materials: Inflate takes Twist, Taper and Cap 2026-10-13 05:22:00 +07:00