def jpeg.color

gralha-jpeg-decode@0.1.0.1 · jpeg.bend:710

import gralha-jpeg-decode@0.1.0.1/jpeg.bend as Jpeg
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

710def jpeg.color(xs: List<&2, F32>, +adobe: U32) -> Img.Color:
711  match xs:
712    case Con{gray, Nil{}}:
713      +v = jpeg.channel(gray)
714      Img.Color{v, v, v, 1.0}
715    case Con{a, Con{b, Con{c, Nil{}}}}:
716      +aa = a
717      +bb = b
718      +cc = c
719      U.choose(Img.Color, U32.is_eq(adobe, 0), Img.Color{jpeg.channel(aa), jpeg.channel(bb), jpeg.channel(cc), 1.0}, jpeg.ycbcr(aa, bb, cc))
720    case Con{a, Con{b, Con{c, Con{k, Nil{}}}}}:
721      +aa = a
722      +bb = b
723      +cc = c
724      +kk = k
725      U.branch(Img.Color, U32.is_eq(adobe, 2), _ => jpeg.ycck(jpeg.ycbcr(aa, bb, cc), kk),
726        _ => Img.Color{jpeg.channel((aa * kk / 255.0 : F32)), jpeg.channel((bb * kk / 255.0 : F32)), jpeg.channel((cc * kk / 255.0 : F32)), 1.0})
727    case _: Img.clear()

Uses (13)

Used by (1)