def png.info

gralha-png-decode@0.1.0.1 · png.bend:42

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

42def png.info(+src: Bin.Bytes) -> PNGInfo:
43  +table = Bin.checksum.crc.table(256n, 0, Bin.bytes.empty())
44  U.branch(PNGInfo, U32.is_ge(Bin.bytes.size(src), 33) && U32.is_eq(Bin.bytes.be(src, 0, 4n, 0), 2303741511) && U32.is_eq(Bin.bytes.be(src, 4, 4n, 0), 218765834) && U32.is_eq(Bin.bytes.be(src, 8, 4n, 0), 13) && U32.is_eq(Bin.bytes.be(src, 12, 4n, 0), 1229472850) && U32.is_eq(Bin.checksum.crc.loop(17n, src, 12, table, 4294967295), Bin.bytes.be(src, 29, 4n, 0)),
45    _ => png.chunks(src, 33, png.header(src, 16), table), _ => png.empty())

Uses (14)

Used by (1)