post oprgb → rgbimport fullseye as fs; fs.ledger.palette_quantize(rgb, colors=None, scheme='okabe_ito') (実装を直接呼ぶなら import gfx2d; gfx2d.palette_quantize(rgb, colors=None, scheme='okabe_ito')、台帳から引くなら opsgfx2d.get("palette_quantize"))Map every pixel to its nearest palette colour in Euclidean RGB.
colors is an (K, 3) array or a list of :mod:palette role names;
the default is the whole Okabe–Ito set plus black and white, so the result
stays legible under a colour vision deficiency.
The search is exhaustive, so the assignment is optimal for this metric and each pixel’s error equals its distance to the nearest palette entry — there is no approximation to bound. The suite checks optimality by brute force and checks that an image whose colours already lie in the palette comes back unchanged, bit for bit.
Euclidean distance in (possibly sRGB-encoded) RGB is not perceptual distance. That is a documented choice, not an oversight: a perceptual metric needs a colour-appearance model this module does not own, and quantising in an unstated space would be worse than quantising in a stated one.
py -3.11 examples/gfx2d_scene.pyrgb を入力に取れる)srgb_to_linear · linear_to_srgb · blend_mode · light_mask · normal_map_decode · bloom · vignette · chromatic_aberration
post)bloom · vignette · chromatic_aberration · film_grain · color_lut · color_grade · dither
Provenance: gfx2d.py — GFX2D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.