def filter.blend.setsat

gralha-svg-render@0.1.0.1 · svg.bend:4575

import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
import gralha-image@0.1.0.1/image.bend as Img

4575def filter.blend.setsat(+c: Img.Color, +s: F32) -> Img.Color:
4576  Img.Color{r, g, b, a} = c
4577  +lo = U.min(r, U.min(g, b))
4578  +span = (U.max(r, U.max(g, b)) - lo : F32)
4579  +scale = U.choose(F32, F32.is_gt(span, 0.0), (s / U.max(span, 0.0000001) : F32), 0.0)
4580  Img.Color{((r - lo) * scale : F32), ((g - lo) * scale : F32), ((b - lo) * scale : F32), 1.0}

Uses (9)

Used by (1)