Skip to content

Latest commit

 

History

History
121 lines (87 loc) · 3.8 KB

README.md

File metadata and controls

121 lines (87 loc) · 3.8 KB

@thi.ng/pixel-io-pfm

npm version npm downloads Mastodon Follow

Note

This is one of 199 standalone projects, maintained as part of the @thi.ng/umbrella monorepo and anti-framework.

🚀 Please help me to work full-time on these projects by sponsoring me on GitHub. Thank you! ❤️

About

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).

Status

STABLE - used in production

Search or submit any issues for this package

Installation

yarn add @thi.ng/pixel-io-pfm

ESM import:

import * as pfm from "@thi.ng/pixel-io-pfm";

Browser ESM import:

<script type="module" src="https://esm.run/@thi.ng/pixel-io-pfm"></script>

JSDelivr documentation

For Node.js REPL:

const pfm = await import("@thi.ng/pixel-io-pfm");

Package sizes (brotli'd, pre-treeshake): ESM: 747 bytes

Dependencies

API

Generated API docs

The package only provides 2 functions:

import { intBuffer, RGB888 } from "@thi.ng/pixel";
import { asPFM }  from "@thi.ng/pixel-io-pfm";
import { writeFileSync } from "node:fs";

// create 2x2 image
const img = intBuffer(2, 2, RGB888);
// set all 4 pixels (in order: red, green, blue, yellow)
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));

Authors

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
}

License

© 2023 - 2024 Karsten Schmidt // Apache License 2.0