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()