vectorcraft/crates
bflatastic c2ed31dc4c Image Trace: thin lines in blurred and scanned art keep smooth edges
Black and White read every pixel as a blend of "black" and "white", and took for those the mean luminance of
the image's black and white pixels. In blurred or scanned line art most black pixels are part paper, so the
mean black was a gray: the middle of every line counted as more than all ink, and by how much changed as the
line crossed the pixel rows, which put a ripple on its edges that the fit then followed with anchors.

- Black is the image's darkest black (the 2nd percentile of its black pixels' luminance).
- White is the lightest pixel within a few pixels of each crack: the paper as it is there. A scan's paper is
  darker in one corner than in another, and read against the image's lightest white it counted as part ink.

On each preset's own inputs, all sizes and variants (docs/image-trace-quality.md), before -> after:
- Line Art: 78 -> 46 anchors, outlines 0.093 -> 0.055 px off on average (blurred lines 168 -> 53 anchors,
  scanned 199 -> 70); before sub-pixel edges it was 25 anchors and 0.158 px off
- Technical Drawing: 56 -> 46 anchors, 0.092 -> 0.084 px off
- Sketched Art: 0.197 -> 0.186 px off; Default 0.092 -> 0.090; Black and White Logo 0.063 -> 0.059 with
  27 -> 29 anchors
Not kept: reading lines up to six pixels deep by their ink's centroid and width, and a looser tolerance for
straight runs, neither of which measured better.
2026-10-13 07:27:56 +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 Fix #1512: the Smooth tool smooths the stretch of path under the drag 2026-10-13 06:56:37 +07:00
eps AI import: gradient stops listed upwards aren't reversed, so a midpoint stays on the stop that starts its part of the ramp 2026-10-13 06:56:37 +07:00
format Native save: documents whose JSON is large are written compact 2026-10-13 06:34:12 +07:00
geom Fix #1512: a round corner next to a curved side no longer sticks out of the corner 2026-10-13 06:56:37 +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: the type of a .ai page moved right keeps the stroke drawn on its glyphs 2026-10-13 06:56:37 +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 import: <textPath> follows basic shapes (circle, ellipse, rect, line, polyline, polygon) 2026-10-13 06:56:37 +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 Fix #1529: Linux reads the font folders fontconfig is set up with 2026-10-13 06:56:37 +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: thin lines in blurred and scanned art keep smooth edges 2026-10-13 07:27:56 +07:00
ui-egui Part of #1479: an image too large to decode is reported on Open, Place and in the Links panel 2026-10-13 06:34:12 +07:00