export function f4PreProcess()

in share/src/bitmap_helpers.ts [39:81]


export function f4PreProcess(s: string) {
    let matrix: number[][] = []
    let line: number[] = []
    let tbl: { [k: string]: number } = {}
    let maxLen = 0
    // attrs.groups.forEach((str, n) => {
    //     for (let c of str) tbl[c] = n
    // })
    s += "\n"
    for (let i = 0; i < s.length; ++i) {
        let c = s[i]
        switch (c) {
            case ' ':
            case '\t':
                break
            case '\n':
                if (line.length > 0) {
                    matrix.push(line)
                    maxLen = Math.max(line.length, maxLen)
                    line = []
                }
                break
            default:
                let v = tbl[c] // U.lookup(tbl, c) //TODO(dz):
                if (v == null) {
                    //     if (attrs.groups.length == 2)
                    // v = 1 // default anything non-zero to one
                    //     else
                    //         throw unhandled(node, lf("invalid character in image literal: '{0}'", v), 9273)
                }
                line.push(v)
                break
        }
    }

    let bpp = 8
    // if (attrs.groups.length <= 2) {
    //     bpp = 1
    // } else if (attrs.groups.length <= 16) {
    bpp = 4 // TODO:
    // }
    return f4EncodeImg(maxLen, matrix.length, bpp, (x, y) => matrix[y][x] || 0)
}