pfsinhdrgen(1)
π pfsinhdrgen β the manual page, but make it cute π
okay so bestie, you're reading the manual for pfsinhdrgen, from section 1 of the General Commands Manual. she's a little program with a big job and honestly? she eats. let's get into it π«Ά
β¨ NAME β¨
pfsinhdrgen β create a pfs stream with different exposures, all defined by a hdrgen script. that's it, that's the whole vibe π
β¨ SYNOPSIS β¨
pfsinhdrgen <sample.hdrgen>
β¨ DESCRIPTION β¨
so what she does is: she reads the files that are defined in the hdrgen script you hand her, and then she outputs them in a PFS stream. periodt π
and here's the cute part β every single frame gets a tag called BV, carrying its corresponding brightness value (that's the APEX standard, iykyk). and the way that works is:
- larger
BV= less exposure = darker image - and that darker image is exactly what you need to capture a bright scene π
so yeah, the generated PFS stream is meant to be used with photo-metric calibration software, and with generators of HDR images. she's a team player, fr fr.
π¦ the hdrgen script file π¦
the HDRGEN script file is literally just a plain text file, no cap. each line contains:
<path_to_an_image> <inverse_of_exposure_time_in_seconds> <aperture_size> <iso_speed> 0
in most cases it is convenient to use the jpeg2hdrgen program to create such a file automatically, because why do it yourself when a girl can do it for you. but β and this is the important bit β in case it could not parse the exif information from jpeg files, it is necessary to create this file by hand. yes bestie, manually. we suffer for the art π
below are the sample contents of such a file:
<--- cut here: sample.hdrgen
/var/tmp/images/img08.jpg 4 2.8 100 0
/var/tmp/images/img09.jpg 58.8235 2.8 100 0
/var/tmp/images/img10.jpg 76.9231 2.8 100 0
/var/tmp/images/img11.jpg 322.581 2.8 100 0
/var/tmp/images/img12.jpg 400 2.8 100 0
<--- cut here: sample.hdrgen
look at her. five exposures. five slays. π
β¨ EXAMPLES β¨
this one is iconic, watch:
pfsinhdrgen sample.hdrgen | pfsview
view exposures defined in sample.hdrgen script. pipe it straight into pfsview and observe πβ¨
β¨ SEE ALSO β¨
go read those next, bestie, they're part of the friend group π«Ά
β¨ BUGS β¨
π the command cannot handle files with a space in the name. that's it. that's the bug. name your files without spaces and you'll be fine.
please report bugs and comments on implementation to Grzegorz Krawczyk <gkrawczyk@users.sourceforge.net> β he's the one holding this whole thing together, show him some love π
and that's the whole page, babe. this was pfsinhdrgen(1) from the General Commands Manual β no date and no version number on this one, just pure, timeless main character energy πΈ thank you for coming to my ted talk, now go calibrate something π
β¨
π¦ 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: pfscalibration 2.2.0-23.fc43 Β· GPL-2.0-or-later
- fedora 44: pfscalibration 2.2.0-25.fc44 Β· GPL-2.0-or-later
- opensuse-leap 16.0: pfscalibration 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pfscalibration 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pfscalibration 2.2.0-bp160.1.20 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: pfscalibration 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