def png.decode.info
gralha-png-decode@0.1.0.1 · png.bend:189
import gralha-png-decode@0.1.0.1/png.bend as Png
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
import gralha-bytes@0.1.0.1/bytes.bend as Bin
import gralha-image@0.1.0.1/image.bend as Img
189def png.decode.info(+info: PNGInfo) -> Img.Picture:
190 PNGInfo{w, h, depth, kind, interlace, palette, alpha, compressed, valid} = info
191 +passes = png.passes(U.choose(Nat, U32.is_eq(interlace, 1), 7n, 1n), info, 0, 0)
192 U.branch(Img.Picture, png.valid(info), _ => png.inflate(Bin.zlib(compressed, png.passes.bytes(passes, 0)), info, passes), _ => Img.Picture{0, 0, 0n, Img.Flat{Img.clear()}})