PNM (Portable Anymap) parser/generator library in pure Nim.
nim -v
Nim Compiler Version 0.19.4 [Linux: amd64] Compiled at 2019-02-01 Copyright (c) 2006-2018 by Andreas Rumpf
git hash: b6d96cafc8bcad1f3d32f2910b25cd11a93f7751 active boot switches: -d:release
nimble -v
nimble v0.9.0 compiled at 2018-10-27 18:10:03 git hash: couldn't determine git hash
import pnm
block:
# P2
let p = readPGMFile("tests/out/p2.pgm")
echo p
block:
# P5
let p = readPGMFile("tests/out/p5.pgm")
echo p
import pnm
let col = 6
let row = 12
let data = @[
0'u8, 0, 0, 0, 0, 0,
0'u8, 0, 0, 0, 0, 0,
0'u8, 0, 0, 0, 0, 0,
0'u8, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2,
]
block:
# P2
let p = newPGM(pgmFileDescriptorP2, col, row, data)
writePGMFile("tests/out/p2.pgm", p)
block:
# P5
let p = newPGM(pgmFileDescriptorP5, col, row, data)
writePGMFile("tests/out/p5.pgm", p)
See examples
directory.
Run example code.
Generating PBM.
cd write_pbm
nim c -d:release main.nim
./main
Generating PGM.
cd write_pgm
nim c -d:release main.nim
./main
Generating PPM.
cd write_ppm
nim c -d:release main.nim
./main
Controling generated PNM files.
cd read_file
nim c -d:release main.nim
./main