def png.valid
gralha-png-decode@0.1.0.1 · png.bend:54
import gralha-png-decode@0.1.0.1/png.bend as Png
import Base
import gralha-bytes@0.1.0.1/bytes.bend as Bin
54def png.valid(+info: PNGInfo) -> Bool:
55 PNGInfo{w, h, depth, kind, interlace, palette, alpha, compressed, valid} = info
56 valid && U32.is_gt(w, 0) && U32.is_gt(h, 0) && U32.is_le(w, 2048) && U32.is_le(h, 2048) && png.depth.valid(kind, depth) && U32.is_le(interlace, 1) && (Bool.not(U32.is_eq(kind, 3)) || (U32.is_gt(Bin.bytes.size(palette), 0) && U32.is_eq(U32.mod(Bin.bytes.size(palette), 3), 0) && U32.is_le(Bin.bytes.size(palette), 768)))