Important
Please participate in the survey here!
(open until end of February)
To achieve a better sample size, I'd highly appreciate if you could circulate the link to this survey in your own networks.
Note
This is one of 189 standalone projects, maintained as part of the @thi.ng/umbrella monorepo and anti-framework.
🚀 Help me to work full-time on these projects by sponsoring me on GitHub. Thank you! ❤️
Portable FloatMap image format support for @thi.ng/pixel.
Similar to the NetPBM formats, the Portable FloatMap image format is extremely simple, uncompressed and mainly interesting for development purposes & interchange (e.g. for use with Intel's Open Image Denoise CLI tools).
STABLE - used in production
Search or submit any issues for this package
yarn add @thi.ng/pixel-io-pfm
ES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/pixel-io-pfm"></script>
For Node.js REPL:
const pixelIoPfm = await import("@thi.ng/pixel-io-pfm");
Package sizes (brotli'd, pre-treeshake): ESM: 747 bytes
The package only provides 2 functions:
asPFM(img: IntBuffer | FloatBuffer, littleEndian?: boolean, linearRGB?: boolean): Uint8Array
: Serializes an image to PFM and returns result as byte arrayreadPFM(buf: Uint8Array, linearRGB?: boolean): FloatBuffer
: Parses byte array as PFM image and returns it asFloatBuffer
import { intBuffer, RGB888 } from "@thi.ng/pixel";
import { asPFM } from "@thi.ng/pixel-io-pfm";
import { writeFileSync } from "fs";
// create 2x2 image
const img = intBuffer(2, 2, RGB888);
// set pixel data (R,G,B,Y)
img.data.set([0xff0000, 0x00ff00, 0x0000ff, 0xffff00]);
// serialize image to PFM byte array and write to file
// (format conversion to FLOAT_RGB is done automatically & non-destructively)
writeFileSync("export/rgby.pfm", asPFM(img));
If this project contributes to an academic publication, please cite it as:
@misc{thing-pixel-io-pfm,
title = "@thi.ng/pixel-io-pfm",
author = "Karsten Schmidt",
note = "https://thi.ng/pixel-io-pfm",
year = 2023
}
© 2023 - 2024 Karsten Schmidt // Apache License 2.0