pfsoutexr(1)
β¨ pfsoutexr β write images or frames in OpenEXR format β¨
okay bestie, gather round, because this is the manual page for pfsoutexr, a section 1 command (General Commands Manual), and it is lowkey the glow-up station for your pfs frames. π
π SYNOPSIS π
pfsoutexr [--compression <method>] [--float32] [--clamp-halfmax] (<file>
[--frames <range>]) [<file>...]
πΈ DESCRIPTION πΈ
Use this command to write frames in OpenEXR format. The way that works is you pipe your source pfs frames into Standard Input β that's the vibe, no cap. π
This command can write arbitrary channels to OpenEXR as 32-bit floating point numbers. BUT β and this is the plot twist π«Ά β color channels are converted to 16-bit half-float format by default, unless you specify the --float32 option. So like, the default is half-float for color, and you have to opt in to the big boi numbers.
Every single tag from the pfs stream gets stored in the OpenEXR file as String attributes. β¨ And tags that are assigned to channels? Those get stored in the format <channel_name>:<tag_name>, so that pfsinexr can later restore tags in the appropriate channels. It's giving "organized, labeled, main character energy."
The depth channel DEPTH is renamed to Z to keep compatibility with pfsinexr. And if the luminance is absolute (tag LUMINANCE set to ABSOLUTE), the WhiteLuminance attribute in the OpenEXR file is set to 1. Periodt. π
Details on the format of the pattern file names, which are used for saving multiple frames, can be found in the manual page of pfsoutppm. (Go read that one too, iykyk.)
π OPTIONS π
--compression <method>,-c <method>β pick one of the available compression methods, bestie:NOβ no compressionRLEβ run length encodingZIPSβ zlib compression, one scan line at a timeZIPβ zlib compression, in blocks of 16 scan linesPIZβ piz-based wavelet compression (default) πPXR24β lossy 24-bit float compression
--float32,-3β if this option is specified, color channels are stored as 32-bit floating point numbers instead of 16-bit half-floats. In most cases half-float numbers offer sufficient precision, so this is the default behavior. β But heads up: note that storing color channels in 32-bit format makes resulting files very large. π Like, huge. Your disk will feel it.--clamp-halfmax,-pβ okay so the maximum value that can be stored in an OpenEXR file is limited to65504if 16-bit HALF float is used (and color channels are stored by default in this format unless the--float32switch is specified). If the luminance data is calibrated in absolute values (cd/m^2), pixel values can easily exceed65504. π« To avoid clamping large pixel values,pfsoutexrrescales data to the range that is valid for 16-bit HALF float format, and the scale factor used for rescaling is stored in the OpenEXR file as the OpenEXR standard attributeWhiteLuminance, so thatpfsinexrcan later restore the absolute values. Use the option--clamp-halfmaxto disable this behavior and clamp half-float values instead. So basically: without this flag it rescales and saves the scale factor; with this flag it just clamps. Choose wisely. π₯
π EXAMPLES π
pfsin memorial.hdr | pfsoutexr memorial.exr
Converts from one HDR format to another. Slay. β¨
π¦ SEE ALSO π¦
pfsout(1) pfsoutppm(1) pfsinexr(1)
π BUGS π
pfsinexr and pfsoutexr can not take stdin / stdout as an input/output (that's a dash '-' instead of a file name). So don't try it, bestie, it will not eat. π
Please report bugs and comments on implementation to the discussion group at http://groups.google.com/group/pfstools. π«Ά
and that's the whole page, babe β this was pfsoutexr(1), from the General Commands Manual, and the footer said pfsoutexr(1) because we keep it consistent around here. stay hydrated, pipe responsibly, and go write some OpenEXR files. πβ¨π
π¦ where this page comes from
- debian bookworm: pfstools 2.2.0-5+b1 Β· GPL-2.0-or-later
- debian trixie: pfstools 2.2.0-9 Β· GPL-2.0-or-later
- fedora 43: pfstools-exr 2.2.0-23.fc43 Β· GPL-2.0-or-later
- fedora 44: pfstools-exr 2.2.0-25.fc44 Β· GPL-2.0-or-later
- opensuse-leap 16.0: pfstools-exr 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pfstools-exr 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pfstools-exr 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pfstools-exr 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- ubuntu jammy: pfstools 2.2.0-2 Β· GPL-2.0-or-later
- ubuntu noble: pfstools 2.2.0-7build3 Β· GPL-2.0-or-later
- ubuntu questing: pfstools 2.2.0-9
- ubuntu resolute: pfstools 2.2.0-10 Β· GPL-2.0-or-later
- ubuntu stonking: pfstools 2.2.0-12 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms