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}