mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
In Grayscale mode with Gradients on, the trace could fill paths with coloured linear gradients (for example a blue-to-orange ramp) beside grey flat fills. Gradient detection ran on the RGB image, so the stops and the gradient's palette colour (its middle) were the source colours, while Grayscale's flat fills come from each pixel's luma. Grayscale now finds gradients, and settles their edges, in a copy of the image reduced to the same Rec. 601 luma the flat grays are quantised from. Every channel of that copy is equal, so the fitted stops, the ends carried to the area's edges and the palette entry are all grey. Color mode is unchanged: it still detects on the RGB image (trace output for gradient fixtures is byte-identical before and after). Adds grayscale_gradients_are_grey: a code-drawn sky ramp over flat shapes with a ramp rectangle, traced in Grayscale with 4 grays and Gradients on, must still produce a gradient, and every path colour, gradient stop and palette entry must be grey. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018tBcdwNhptqtmX32JCGFzB