Your company here — click to reach over 10,000 unique daily visitors

pfsin - Man Page

Read an image in one of the several formats and write pfs stream to the standard output


pfsin <file> [<file>...]


This command can be used to read high- or low- dynamic range image in several recognized formats and output pfs stream on standard output. The pfs stream is usually piped to another program for further processing (see examples). To get a list of recognized formats and extensions, execute:

 pfsin --help

This command is a front-end for pfsin* programs for reading images: pfsinrgbe, pfsinexr, etc. Based on the file extension, appropriate program is executed. If two different file format are given as parameters, two different program for loading images are executed. Additional options starting with dash '-' can be passed to pfsin* programs. The following rules apply for passing the options: the options given before any image file name (or %d pattern) are passed to all pfsin* programs. Options given after image file name are only passed to the program executed for that file(s). Note also that all option that take an argument (except --frames) must given in the form --option=value, that is without a space between an option and its argument.


The following options are shared by most pfsin* commands, although some may not accept --absolute and may ignore --linear.

--frames <range>

Range is given in mathlab / octave format:


Frame numbers start with startframe (default 0), are increased by step (default 1) and stop at endframe You can skip one of those values, for example 1:100 for frames 1,2,...,100 and 0:2: for frames 0,2,4,... up to the last file that exists.


Skip up to ten frames in a row if corresponding files are missing. Otherwise the program stops reading sequence at the first file that does not exists. This switch does not apply to the first frame in a sequence. This switch can be useful if there is a rendered animation where some of the frame has not been generated.

--linear,  -l

Converts pixel values to linear luminance (XYZ), assuming the sRGB color space for the input image. The maximum pixel value (255,255,255) is mapped to Y=1. LUMINANCE tag is set to RELATIVE.

--absolute <max_lum>, -a <max_lum>

--absolute converts pixel values to an absolute linear luminance (XYZ), that is the color space, in which channel Y contains luminance given in cd/m^2. The sRGB color space is assumed for the input image. The maximum pixel value (255,255,255) is mapped to Y=<max_lum>. <max_lum> is typically set to 80 [cd/m^2] for a CRT monitor. LUMINANCE tag is set to ABSOLUTE. --absolute process images almost the same as --relative, but additionally it scales all pixels by <max_lum>.


pfsin memorial.pic | pfsview

See a hdr image in Radiance format (RGBE).

pfsin memorial.pic | pfstmo_drago03 | pfsout memorial.jpeg

Tone map a hdr image and save it as JPEG.

See Also

pfsout(1) pfsinppm(1)


For LDR formats - JPEG, PNG, PNM: If pfstools are compiled without ImageMagic support, this command currently will not handle multiple frames given with a %d pattern.

Please report bugs and comments on implementation to  the discussion group http://groups.google.com/group/pfstools

Referenced By

luminance-hdr(1), luminance-hdr-cli(1), pfscat(1), pfsclamp(1), pfscolortransform(1), pfscut(1), pfsextractchannels(1), pfsflip(1), pfsgamma(1), pfsglview(1), pfsinexr(1), pfsinimgmagick(1), pfsinpfm(1), pfsinppm(1), pfsinrgbe(1), pfsintiff(1), pfsinyuv(1), pfsout(1), pfsouthdrhtml(1), pfsoutyuv(1), pfspad(1), pfspanoramic(1), pfsretime(1), pfsrotate(1), pfssize(1), pfstag(1), pfstmo_drago03(1), pfstmo_durand02(1), pfstmo_fattal02(1), pfstmo_ferradans11(1), pfstmo_mai11(1), pfstmo_mantiuk06(1), pfstmo_mantiuk08(1), pfstmo_pattanaik00(1), pfstmo_reinhard02(1), pfstmo_reinhard05(1), pfsview(1).