Provided by: netpbm_11.10.02-1build1_amd64 bug

NAME

       PFM - PFM graphic image file format

DESCRIPTION

       This  document  describes  the  PFM  graphic  image  file  format  as understood by the Netpbm converters
       pamtopfm(1) and pfmtopam(1).

       There are multiple similar formats known as PFM in the world, none of  them  authoritatively  documented.
       The  format  described  here  is  one that Bryan Henderson deduced from a program he found somewhere that
       dealt with a "PFM" format.  This format appears to be the one Gimp calls PFM.

       Another important PFM is used by Adobe Photoshop and appears to be identical to this except that rows are
       ordered from top to bottom in the Adobe version.  If you interchange  images  between  systems  that  use
       these  two formats, it will work except that your image gets flipped upside down.  You can compensate for
       that with pamflip -topbottom.

       The PFM format is inspired by the Netpbm formats, and you will  see  lots  of  similarity.   It  is  not,
       however, an official Netpbm format.  Its goal is not consistent with those of Netpbm formats.

The format

       A  PFM  image  is  a  stream of bytes.  The stream consists of a header followed immediately by a raster.
       These two components are described below.  There are no  delimiters  before  or  after  the  sections  as
       described.

   PFM header
       The PFM header is 3 consecutive "lines" of ASCII text.  After each line is a white space character.  That
       character is typically a newline character, hence the term "line," but doesn't have to be.

       pamtopfm uses a newline in the PFM it generates.

       Identifier Line

       The  identifier  line  contains the characters "PF" or "Pf".  PF means it's a color PFM.  Pf means it's a
       grayscale PFM.

       Dimensions Line

       The dimensions line contains two positive decimal integers, separated by a blank.  The first is the width
       of the image; the second is the height.  Both are in pixels.

       Scale Factor / Endianness

       The Scale Factor / Endianness line is a queer line that jams endianness  information  into  an  otherwise
       sane  description of a scale.  The line consists of a nonzero decimal number, not necessarily an integer.
       If the number is negative, that means the PFM raster is little endian.  Otherwise, it is big endian.  The
       absolute value of the number is the scale factor for the image.

       The scale factor tells the units of the samples in the raster.   You  use  somehow  it  along  with  some
       separately  understood  unit  information to turn a sample value into something meaningful, such as watts
       per square meter.

   PFM raster
       The raster is a sequence of pixels, packed one after another, with no delimiters of any kind.   They  are
       grouped by row, with the pixels in each row ordered left to right and the rows ordered bottom to top.

        Note:  This  is the opposite of Netpbm formats, which order rows top to bottom.  It is also the opposite
       of the format Adobe Photoshop calls PFM.  See the introduction for more information on this disparity.

       Each pixel consists of 1 or 3 samples, packed one after another, with  no  delimiters  of  any  kind.   1
       sample for a grayscale PFM and 3 for a color PFM (see the Identifier Line of the PFM header).

       Each  sample  consists of 4 consecutive bytes.  The bytes represent a 32 bit string, in either big endian
       or little endian format, as determined by the Scale Factor / Endianness line of  the  PFM  header.   That
       string  is  an  IEEE  32 bit floating point number code.  Since that's the same format that most CPUs and
       compiler use, you can usually just make a program use the bytes directly  as  a  floating  point  number,
       after taking care of the endianness variation.

DOCUMENT SOURCE

       This  manual  page was generated by the Netpbm tool 'makeman' from HTML source.  The master documentation
       is at

              http://netpbm.sourceforge.net/doc/pfm.html

netpbm documentation                            27 February 2024                       PFM Format Description(5)