@thi.ng/pixel-io-netpbm v2.1.160
This project is part of the @thi.ng/umbrella monorepo.
About
Multi-format NetPBM reader & writer support for @thi.ng/pixel.
This package can read & write binary
NetPBM image formats from byte
arrays/buffers to
@thi.ng/pixel
pixel buffers (aka PackedBuffer
).
Source format | Destination format | Rec. file extension(1) |
---|---|---|
1 bit | GRAY8 (2) | .pbm |
2-8 bit grayscale | GRAY8 | .pgm |
9-16 bit grayscale | GRAY16 | .pgm |
24 bit RGB | ARGB8888 | .ppm |
(1) no relevance to actual parse/export logic (2) currently no support for actual 1-bit pixel buffers
Furthermore the parseHeader()
function can be used to just extract image type,
size and other meta data (from comments), without parsing the full image.
Status
STABLE - used in production
Search or submit any issues for this package
Installation
yarn add @thi.ng/pixel-io-netpbm
ES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/pixel-io-netpbm"></script>
For Node.js REPL:
# with flag only for < v16
node --experimental-repl-await
> const pixelIoNetpbm = await import("@thi.ng/pixel-io-netpbm");
Package sizes (gzipped, pre-treeshake): ESM: 1.36 KB
Dependencies
API
import * as pbm from "@thi.ng/pixel-io-netpbm";
import * as fs from "fs";
const src = fs.readFileSync("a.pbm");
// <Buffer 50 34 0a 23 20 67 65 6e 65 72 61 74 65 64 20 62 79...>
// parse image header data
// P4 type => 1bit bitmap
pbm.parseHeader(src)
// {
// type: 'P4',
// width: 12,
// height: 8,
// max: undefined,
// start: 47,
// comments: [ 'generated by @thi.ng/pixel-io-netpbm' ]
// }
const img = pbm.read(src);
// IntBuffer {
// width: 12,
// height: 8,
// format: [Object],
// data: Uint8Array(96) [
// 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
// 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 0, 255,
// 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255,
// 255, 0, 0, 255, 255, 0, 0, 255, 0, 0, 0, 255,
// 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255,
// 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255,
// 255, 0, 0, 255, 255, 0, 0, 255, 255, 255, 0, 255,
// 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255
// ]
// }
// convert to RGB image and export w/ additional meta data
// (will be stored in PBM header comments)
fs.writeFileSync(
"a-rgb.ppm",
pbm.asPPM(
img.as(RGB888),
[
"@prefix dc: http://purl.org/dc/terms/",
"dc:created 2021-02-08",
"dc:creator toxi"
]
)
);
Authors
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-pixel-io-netpbm,
title = "@thi.ng/pixel-io-netpbm",
author = "Karsten Schmidt",
note = "https://thi.ng/pixel-io-netpbm",
year = 2021
}
License
© 2021 Karsten Schmidt // Apache Software License 2.0
3 months ago
4 months ago
4 months ago
4 months ago
5 months ago
4 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
12 months ago
12 months ago
11 months ago
12 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago