vectorcraft/crates
bflatastic 9bad0a24ca Part of gap 2: Effect › Pixelate (Color Halftone, Crystallize, Mezzotint, Pointillize)
Four Photoshop-style raster effects on the pixel-filter pipeline
(vectorcraft_effects::pixel::pixelate), under a new Effect › Pixelate
submenu between Blur and Sharpen in the Raster Effects section:

- Color Halftone (maxRadius 4..127, default 8; channel1..channel4 screen
  angles -360..360, defaults 108/162/90/45): each colour channel is
  screened at its angle in square cells sized so a dot of Max. Radius
  fills one; each cell's dot covers the share of the cell that is the
  channel's coverage-weighted mean there (white stays white, black
  black). RGB documents screen R, G, B (channels 1 to 3); CMYK documents
  screen C, M, Y, K inks (channels 1 to 4), also when they are drawn ink
  plane by ink plane (the K plane uses channel 4).
- Crystallize (cellSize 3..300, default 10): every pixel takes the
  colour at the nearest of one jittered point per cell (exact Voronoi
  over a 5 x 5 neighbourhood, pruned by distance).
- Mezzotint (type: Fine/Medium/Grainy/Coarse Dots, Short/Medium/Long
  Lines, Short/Medium/Long Strokes; default Fine Dots; a dropdown in the
  dialog): each channel is turned fully on or off against its own random
  threshold pattern, so the object becomes pure colours.
- Pointillize (cellSize 3..300, default 5): one dot of random size per
  cell at a jittered point, coloured by the softened object there and as
  opaque as the object at its centre, stacked in random order over a
  white canvas where the object is.

Lengths are in points (Scale Strokes & Effects scales them) and every
pattern lies in document space around the object's centre, so the
result is the same at any zoom or raster resolution, moves with the
object, and is identical on every redraw (hash noise of the pattern's
cell indices, no state). Work per pixel is bounded whatever the
parameters, which are clamped to their ranges and finite-checked; the
halftone's cell grid is capped by the raster's size and a screen finer
than 3 pixels leaves the image as it is (its average). PixelSpace gains
`channels` so the renderer tells the filters what the channels hold.

Catalogue rows with parameter docs, outsets and reaches for cropping,
menu entries, dialog labels (Max. Radius, Channel 1-4, Cell Size), the
Mezzotint Type dropdown, translations, and tests: parameters and
clamping, tone and coverage, CMYK inks, polygon crystals, pure-colour
mezzotints with ten distinct patterns, dots on a white canvas, the same
result at twice the resolution and when moved, the canvas, PDF and SVG
through the engine, the command sweep with junk parameters, the dialogs
and the menu.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:42:24 +07:00
..
affinity Clippy 1.99: as_chunks in the Affinity raster tests 2026-10-09 23:15:36 +07:00
brush Part of #852: Brush Options for Calligraphic and Bristle brushes, pen pressure 2026-10-10 12:15:18 +07:00
cad Fix #546: DXF export writes each fill's outlines before its hatch 2026-10-09 14:49:42 +07:00
color Fix #831: color books (.acb) open as swatch libraries 2026-10-10 10:27:58 +07:00
doc Colour graph series through Group Selection 2026-10-10 14:33:40 +07:00
effects Part of gap 2: Effect › Pixelate (Color Halftone, Crystallize, Mezzotint, Pointillize) 2026-10-10 15:42:24 +07:00
engine Part of gap 2: Effect › Pixelate (Color Halftone, Crystallize, Mezzotint, Pointillize) 2026-10-10 15:42:24 +07:00
eps Part of #758: .ai import doesn't weigh text objects when the layers can't be used 2026-10-10 10:27:50 +07:00
format Fonts: missing fonts are listed when a document opens, with Find Fonts and a folder search 2026-10-10 08:42:32 +07:00
geom Part of #812: an ellipse's Pie Start and End Angle and Invert Pie 2026-10-10 03:00:15 +07:00
mcp Fix #832: --automation-read-root and --automation-write-root confine the MCP server's files 2026-10-10 14:27:24 +07:00
metafile Part of #637: the editing data's structure read whole, colours, gradients, transparency, names, images and artboards included 2026-10-09 16:02:36 +07:00
pathops Fix #569: Shape Builder merges leave no stray edges in their outlines 2026-10-09 03:04:48 +07:00
pdf PDF import: leave art past the page unclipped in a PDF-compatible .ai 2026-10-10 08:26:48 +07:00
plugins Fix #832: --automation-read-root and --automation-write-root confine the MCP server's files 2026-10-10 14:27:24 +07:00
render Part of gap 2: Effect › Pixelate (Color Halftone, Crystallize, Mezzotint, Pointillize) 2026-10-10 15:42:24 +07:00
svg Fix #847: draw Underline and Strikethrough 2026-10-10 06:03:04 +07:00
testkit Fonts: missing fonts are listed when a document opens, with Find Fonts and a folder search 2026-10-10 08:42:32 +07:00
text Part of #394: Show Font Names in English labels the font menus. 2026-10-10 14:10:31 +07:00
tools Part of #812: more tools open their options on a double-click 2026-10-10 13:00:21 +07:00
trace Image Trace: Flat Logo mode (sub-pixel edges, restored corners, true lines and circles) 2026-10-09 17:57:04 +11:00
ui-egui Part of gap 2: Effect › Pixelate (Color Halftone, Crystallize, Mezzotint, Pointillize) 2026-10-10 15:42:24 +07:00