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

pfsouthdrhtml - Man Page

Create a web page with an HDR viewer


pfsouthdrhtml [<page_name>] [--quality <1-5>] [--image-dir <directory_name>] [--page-template <template_file>] [--image-template <template_file>] [--object-output <file_name.js>] [--html-output <file_name.html>]


The command creates in the current directory an HTML web page containing multi-exposure HDR viewer. The multi-exposure viewer displays a portion of the available dynamic range with minimum contrast distortions and provides a slider control to move the dynamic range window towards brighter or darker tones. The interface is very similar to pfsview, which is a pfstools application for displaying HDR images. The web page employs only JavaScript and CSS opacity property and does not require Java applets or the Flash plugin. Note that because this techniques encodes 20-60 exposures using only few images, the displayed exposures may not be identical to the exposures that are shown in pfsview. For examples and more information, visit


<page_name> specifies the file name, of the web page to be generated. If <page_name> is missing, the file name of the first image with .html extension will be used.

The command can take as input several images and put them all on the same web page. For each image, its file name (from the FILE_NAME tag in the pfsstrem) without extension and a leading path will be used as a name for all JavaScript variables corresponding to that image. If the filename contains illegal characters (such as space, '-', '[', etc), these will be converted to '_'.

--quality <1-5>, -q <1-5>

Quality of the interpolated exposures, from the worst (1) to the best (5). The default is 2, which is sufficient for most applications. Higher quality will introduce less distortions in the brightest and the darkest tones, but will also generate more images. More images means that there is more data that needs to be transferred to the web-browser, making HDR viewer less responsive.

--image-dir <directory_name>, -d <directory_name>

Specify where to store the resulting image files. Links to images in HTML will be updated accordingly. This must be a relative path and the directory must exist.  Useful to avoid clutter in the current directory.

--page-template <template_file>, -p <directory_name>, --image-template <template_file>, -i <template_file>

Replaces the template files used to generate an HTML web page. The template files contain all HTML and JaveScript code with special keywords (@keyword@) that are replaced with image specific data, such as width, height, image base name, etc. The default template files can be found in INSTALL_DIR/share/pfstools/hdrhtml_default_templ/hdrhtml_*_templ.html. There is an alternative template bundled with pfstools in the hdrhtml_hdrlabs_templ directory, which contains many improvements and looks much better but requires additional asset files.  The example at the end of this manual shows how to use alternative template. More details on how to design own templates can be found in Template File Format below.

--object-output <file_name.js>, -o <file_name.js>

Store JavaScript objects (hdr_<base_name>) associated with each image in a separate file. This is useful if you want to script creating HTML pages.

--html-output <file_name.html>, -l <file_name.html>

Store HTML code that shows HDRHTML viewer for each image in a separate file. This is useful if you want to script creating HTML pages.

Template File Format

pfsouthdrhtml uses two template files hdrhtml_page_templ.html and hdrhtml_image_templ.html, located in INSTALL_DIR/share/pfstools/, to generate a web page with an HDR HTML viewer. The 'page' file contains the HTML of the entire web page and the 'image' file is used to paste a viewer code for a single image. You can replace one or both these templates with your own using --page-template and --image-template options.

Each template contains HTML code with additional keywords surrounded by @ marks (@keyword@), which are replaced with HDR HTML specific code. Most of the keywords are self explanatory, therefore only the most important are described below.

@hdr_img_def@ JavaScript objects that must be put in the 'body'

section before any images. These define all the parameters needed to control HDR HTML viewer.


Pre-computed array of opacity coefficients. The same array is used for all images that use the same quality setting. Currently only one such array could be used per web-page, so images generated with different quality setting cannot be mixed on a single web page.

@image_htmlcode@ or @image_htmlcode[base_name]@

Inserts HTML code of all images or a single image with the base_name (name with no file extension) specified as a parameter. This should be put where HDR HTML viewer should be located.


pfsin memorial.hdr | pfshdrhtml memorial_church

Generates a web page memorial_church.html with a set of images memorial_church_*.jpg in the current directory.

pfsin ~/hdr_images/*.exr | pfssize --maxx 512 --maxy 512 | pfsouthdrhtml hdr_images

Generate a web page with all OpenEXR images from ~/hdr_images/. The images are resized so that they are not larger than 512x512.

templ_dir=$INST_DIR/share/pfstools/hdrhtml_hdrlabs_templ/; pfsin img1.hdr img2.exr | pfssize -r 0.2 | pfsouthdrhtml -p ${templ_dir}/hdrhtml_page_templ.html -i ${templ_dir}/hdrhtml_image_templ.html test.html && cp -r ${templ_dir}/hdrhtml_assets ./

The commands above will use an improved template from hdrlabs.com instead of the default one. Note that this template requires html_assets directory to be copied manually to the destination directory. Replace $INST_DIR with the directory where pfstools is installed (/usr/local by default).

See Also

pfsin(1) pfsout(1)


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

Referenced By

luminance-hdr(1), luminance-hdr-cli(1).