commit 5a50a4696646d99c90679bdcc7ac8ce9478e44e1
parent 1799165f6e70184035a27ecf1534abfb59973f2b
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 11 Jan 2023 10:56:25 +0100
Rewrite the man page
Convert the source from asciidoc to scdoc, review and update the texts,
and add a PALETTES section that lists the available color ramps.
Diffstat:
| M | cmake/CMakeLists.txt | | | 42 | +++++++++++++++++++++--------------------- |
| D | cmake/doc/CMakeLists.txt | | | 145 | ------------------------------------------------------------------------------- |
| D | doc/htpp-man.css | | | 96 | ------------------------------------------------------------------------------- |
| A | doc/htpp.1.scd | | | 257 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| D | doc/htpp.1.txt | | | 188 | ------------------------------------------------------------------------------- |
5 files changed, 278 insertions(+), 450 deletions(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -19,20 +19,6 @@ project(htpp C)
set(HTPP_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../src)
-if(CMAKE_HOST_UNIX)
- set(HTPP_DOC "TROFF" CACHE STRING
- "Type of documentation to generate and install.")
-else()
- set(HTPP_DOC "HTML" CACHE STRING
- "Type of documentation to generate and install.")
-endif()
-
-set_property(CACHE HTPP_DOC PROPERTY STRINGS
- "HTML"
- "TROFF"
- "TROFF & HTML"
- "NONE")
-
################################################################################
# Check dependencies
################################################################################
@@ -56,13 +42,6 @@ if(MSVC)
include_directories(${MuslGetopt_INCLUDE_DIR})
endif()
-###############################################################################
-# Build subprojects
-###############################################################################
-if(NOT HTPP_DOC STREQUAL "NONE")
- add_subdirectory(doc)
-endif()
-
################################################################################
# Configure and define targets
################################################################################
@@ -106,6 +85,27 @@ set_target_properties(htpp PROPERTIES
SOVERSION ${VERSION_MAJOR})
################################################################################
+# Man page
+###############################################################################
+find_program(SCDOC NAMES scdoc)
+if(NOT SCDOC)
+ message(WARNING
+ "The `scdoc' program is missing. "
+ "The htpp man page cannot be generated.")
+else()
+ set(_src ${PROJECT_SOURCE_DIR}/../doc/htpp.1.scd)
+ add_custom_command(
+ OUTPUT htpp.1
+ COMMAND ${SCDOC} < ${_src} > htpp.1
+ DEPENDS ${_src}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Buid ROFF man page htpp.1"
+ VERBATIM)
+ add_custom_target(man-roff ALL DEPENDS htpp.1)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/htpp.1 DESTINATION share/man/man1)
+endif()
+
+################################################################################
# Define output & install directories
################################################################################
install(TARGETS htpp
diff --git a/cmake/doc/CMakeLists.txt b/cmake/doc/CMakeLists.txt
@@ -1,145 +0,0 @@
-# Copyright (C) 2018-2020 |Meso|Star>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-cmake_minimum_required(VERSION 3.0)
-
-string(REGEX MATCH ".*HTML.*" _html ${HTPP_DOC})
-string(REGEX MATCH ".*ROFF.*" _roff ${HTPP_DOC})
-
-set(HTPP_DOC_DIR ${PROJECT_SOURCE_DIR}/../doc)
-
-################################################################################
-# Look for asciidoc and a2x programs
-################################################################################
-if(_html)
- find_program(ASCIIDOC NAMES asciidoc asciidoc.py)
- if(NOT ASCIIDOC)
- unset(_html)
- message(WARNING
- "The `asciidoc' program is missing. "
- "The htpp HTML documentation cannot be generated.")
- endif()
-endif()
-
-if(_roff)
- find_program(A2X NAMES a2x a2x.py)
- if(NOT A2X)
- unset(_roff)
- message(WARNING
- "The `a2x' program is missing. "
- "The htpp man pages cannot be generated.")
- endif()
-endif()
-
-################################################################################
-# Copy doc files
-################################################################################
-set(MAN_NAMES htpp.1)
-
-if(_roff OR _html)
- set(MAN_FILES)
- foreach(_name IN LISTS MAN_NAMES)
- set(_src ${HTPP_DOC_DIR}/${_name}.txt)
- set(_dst ${CMAKE_CURRENT_BINARY_DIR}/${_name}.txt)
- add_custom_command(
- OUTPUT ${_dst}
- COMMAND ${CMAKE_COMMAND} -E copy ${_src} ${_dst}
- DEPENDS ${_src}
- COMMENT "Copy the asciidoc ${_src}"
- VERBATIM)
- list(APPEND MAN_FILES ${_dst})
- endforeach()
- add_custom_target(man-copy ALL DEPENDS ${MAN_FILES})
-endif()
-
-################################################################################
-# ROFF man pages
-################################################################################
-if(_roff)
- set(A2X_OPTS -dmanpage -fmanpage)
- set(MAN_FILES)
- set(MAN5_FILES)
- set(MAN1_FILES)
- foreach(_name IN LISTS MAN_NAMES)
- set(_man ${CMAKE_CURRENT_BINARY_DIR}/${_name})
- set(_txt ${CMAKE_CURRENT_BINARY_DIR}/${_name}.txt)
-
- add_custom_command(
- OUTPUT ${_man}
- COMMAND ${A2X} ${A2X_OPTS} ${_txt}
- DEPENDS man-copy ${_txt}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Build ROFF man page ${_man}"
- VERBATIM)
- list(APPEND MAN_FILES ${_man})
-
- string(REGEX MATCH "^.*.5$" _man5 ${_man})
- string(REGEX MATCH "^.*.1$" _man1 ${_man})
- if(_man1)
- list(APPEND MAN1_FILES ${_man1})
- elseif(_man5)
- list(APPEND MAN5_FILES ${_man5})
- else()
- message(FATAL_ERROR "Unexpected man type")
- endif()
- endforeach()
- add_custom_target(man-roff ALL DEPENDS ${MAN_FILES})
-
- install(FILES ${MAN1_FILES} DESTINATION share/man/man1)
- install(FILES ${MAN5_FILES} DESTINATION share/man/man5)
-endif()
-
-################################################################################
-# HTML documentation
-################################################################################
-if(_html)
- set(ASCIIDOC_OPTS
- -bxhtml11
- -dmanpage
- --attribute themedir=${HTPP_DOC_DIR}
- --theme=htpp-man)
-
- set(MAN_FILES)
- set(MAN5_FILES)
- set(MAN1_FILES)
- foreach(_name IN LISTS MAN_NAMES)
- set(_man ${CMAKE_CURRENT_BINARY_DIR}/${_name}.html)
- set(_txt ${CMAKE_CURRENT_BINARY_DIR}/${_name}.txt)
-
- add_custom_command(
- OUTPUT ${_man}
- COMMAND ${ASCIIDOC} ${ASCIIDOC_OPTS} ${_txt}
- DEPENDS man-copy ${_txt} ${HTPP_DOC_DIR}/htpp-man.css
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Build HTML man page ${_man}"
- VERBATIM)
- list(APPEND MAN_FILES ${_man})
-
- string(REGEX MATCH "^.*.5.html$" _man5 ${_man})
- string(REGEX MATCH "^.*.1.html$" _man1 ${_man})
- if(_man1)
- list(APPEND MAN1_FILES ${_man1})
- elseif(_man5)
- list(APPEND MAN5_FILES ${_man5})
- else()
- message(FATAL_ERROR "Unexpected man type")
- endif()
- endforeach()
- add_custom_target(man-html ALL DEPENDS ${MAN_FILES})
-
- install(FILES ${MAN1_FILES} DESTINATION share/doc/htpp/html)
- install(FILES ${MAN5_FILES} DESTINATION share/doc/htpp/html)
-endif()
-
diff --git a/doc/htpp-man.css b/doc/htpp-man.css
@@ -1,96 +0,0 @@
-/* Copyright (C) 2016-2018 CNRS
- *
- * This is free style sheet: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This CSS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/. */
-
-body.manpage {
- font-family:"Liberation Sans",sans-serif;
- font-size:10pt;
- text-align: justify;
- max-width: 55em;
- margin: 1em;
- background: #ffffff
-}
-
-body.manpage .monospaced, .literalblock {
- margin: 2em;
- color: #636261
-}
-
-body.manpage em {
- color: #660000
-}
-
-body.manpage div.verseblock > pre.content {
- font-family: "Liberation Mono",monospace;
-}
-
-body.manpage h1 {
- padding-bottom: 0.5em;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-body.manpage code {
- font-family: "Liberation Mono",monospace;
-}
-
-body.manpage #footer { display: none; }
-
-body.manpage div#toctitle { display: none; }
-
-body.manpage div#toc {
- display: block;
- position:fixed;
- top:0;
- left:60em;
- height:100%;
- width: 100%;
- padding:3em 0 0 0;
- border-left:1px solid #dbdbdb;
- background: #eeeeee
-}
-
-body.manpage a {
- font-weight: bold;
- color: #225588;
-}
-
-body.manpage div#toc a, div#toc a:link, div#toc a:visited {
- margin:0;
- padding-left: 2em;
- color:#999999;
- text-decoration:none;
- font-weight: normal;
-}
-
-body.manpage div.toclevel1 {
- line-height: 1.5em;
-}
-
-body.manpage div.toclevel2 {
- margin-left: 2em;
-}
-
-body.manpage div#toc a:hover {
- color:#666666;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
diff --git a/doc/htpp.1.scd b/doc/htpp.1.scd
@@ -0,0 +1,257 @@
+htpp(1)
+
+; Copyright (C) 2018, 2019, 2020, 2023 |Méso|Star> (contact@meso-star.com)
+; Copyright (C) 2018, 2019 Centre National de la Recherche Scientifique
+; Copyright (C) 2018, 2019 Université Paul Sabatier
+;
+; This program is free software: you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation, either version 3 of the License, or
+; (at your option) any later version.
+;
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# NAME
+
+htpp - High-Tune: Post-Process
+
+# SYNOPSIS
+
+htpp [_option_] ... [_input_]
+
+# DESCRIPTION
+
+*htpp* post-processes an *htrdr-image*(5) and converts it to a PPM [1] image or a
+*gnuplot*(1) script. If _input_ is not defined, the input image is read from
+standard input. Two post-processing procedures are provided: image color
+post-processing (*-i* option) and mapping of a given pixel component to a color
+gradient (*-m* option). By default, *htpp* post-processes the color of the
+image.
+
+## Color post-processsing
+
+To post-process image colors (*-i* option) *htpp* assumes that the first, third
+and fifth components of each input pixel encode a color in the CIE 1931 XYZ
+color space. First, *htpp* applies tone correction to these colors via the
+following filmic tone mapping operator [2]:
+
+```
+out-color = f(in-color * exposure) / f(white-value * exposure)
+```
+
+with:
+
+```
+f(x) = (x * (A*x + C*B) + D*E) / (x*(A*x + B + D*F)) - E/F
+
+A = 0.15
+B = 0.50
+C = 0.10
+D = 0.20
+E = 0.02
+F = 0.30
+```
+
+The term _exposure_ is a user-defined parameter provided via the _exposure_
+image option. If not set, a default _exposure_ of 1 is used. The _white-value_
+is either set by the user via the _white_ image option or calculated
+automatically as the luminance such that 99.5% of the pixel luminances are below
+_white-value_.
+
+After the tone correction function is applied, pixels are transformed from the
+CIE 1931 XYZ color space to the linear sRGB color space before being gamma
+corrected. Finally, the resulting pixel components are truncated between [0, 1]
+and finally encoded to 8 bits.
+
+## Map a value to a color gradient
+
+The mapping of a pixel component to a color gradient is controlled by the *-m*
+option. The pixel component to be post-processed is defined by the _pixcpnt_
+mapping option. *htpp* normalizes this component to its range across the whole
+image or to the _range_ mapping option if set. The resulting value is then
+mapped to a color gradient whose name is defined by the _palette_ mapping
+option; see the PALETTES section for a list of available color gradients.
+
+# OPTIONS
+
+*-f*
+ Force overwrite of the _output_ file.
+
+*-h*
+ List short help and exit.
+
+*-i* <_sub-option_>[:<_sub-option_> ...]
+ Post-process the color of the *htrdr-image*(5). The first, the third and the
+ fifth pixel components are assumed to store the pixel color encoded into the
+ CIE 1931 XYZ color space. Available sub-options are:
+
+ *default*
+ Use the default values of the sub-options.
+
+ *exposure*=_real_
+ Pixel exposure. By default its value is 1.
+
+ *white*=_radiance_;;
+ Radiance in the _input_ image that will represent the white color in
+ _output_. If not defined, the white value is automatically computed from
+ the radiance of the _input_ image.
+
+*-m* <_sub-option_>[:<_sub-option_> ...]
+ Map a pixel component to a regular color. Available sub options are:
+
+ *default*
+ Use the default values of the sub-options.
+
+ *palette*=_palette-name_
+ Color palette to use. See the _PALETTES_ section for a complete
+ list of supported palettes. The default palette is _inferno_.
+
+ *pixcpnt*=_pixel-component_
+ Index in [0, 7] of the pixel component to map. The default pixel component
+ is the first one, i.e. *pixcpnt*=0.
+
+ *range*=_min_,_max_
+ Range of the values to map. A degenerated range (i.e. _min_ >= _max_) means
+ that this range is automatically computed from the boundaries of the
+ selected pixel component over the whole image. This is the default
+ comportment.
+
+ *gnuplot*
+ The _output_ image is formatted as a gnuplot script rather than a PPM
+ image. Once executed, the script generates a PNG image with an embedded
+ color ramp. Note that this script can be edited in order to adjust the
+ generated image to any requirements.
+
+*-o* _output_
+ File where the result is written. If not defined, write _output_ to standard
+ output.
+
+*-t* _threads-count_
+ Hint on the number of threads to use. By default use as many threads as CPU
+ cores.
+
+*-v*
+ Make *htpp* verbose. When used in pixel color post-processing (*-i* option),
+ *htpp* displays the radiance of the _white_ color in the output image. When
+ mapping a pixel component to a color gradient (*-m* option), *htpp* displays
+ the color gradient and its associated values.
+
+*--version*
+ Display version information and exit.
+
+# EXAMPLES
+
+Post-process the *htrdr-image*(5) saved in _img.htrdr_ and write the resulting
+PPM image in _img.ppm_. Use the *-f* option to overwrite _img.ppm_ if it
+already exists:
+
+```
+htpp -f -o img.ppm img.htrdr
+```
+
+Convert _img.htrdr_ and visualise the resulting image by redirecting the
+standard output to the *feh*(1) image viewer. Use an _exposure_ of _0.2_ and
+explicitly define the white color to _31.2_ W/sr/m²:
+
+```
+htpp -i exposure=0.2:white=31.2 img.htrdr | feh -
+```
+
+Use the *-m* option to map the values of the second pixel component clamped in [0, 2]
+to the color ramp _magma_.
+
+```
+htpp -v -m pixcpnt=1:palette=magma:range=0,2 img.htrdr | feh -
+```
+
+Use the *-m* option to map the values of the sixth pixel component and write
+it as a gnuplot script. Run *gnuplot*(1) to generate a PNG of the result and
+visualise the resulting image with *feh*(1).
+
+```
+htpp -m pixcpnt=6:gnuplot -o img.gp img.htrdr
+gnuplot img.gp | feh -
+```
+
+# PALETTES
+
+This section lists the available palettes that can be used to map a pixel
+component to a color (*-m* option):
+
+- accent
+- blues
+- brbg
+- bugn
+- bupu
+- chromajs
+- dark2
+- gnbu
+- gnpu
+- greens
+- greys
+- inferno
+- jet
+- magma
+- moreland
+- oranges
+- orrd
+- paired
+- parula
+- pastel1
+- pastel2
+- piyg
+- plasma
+- prgn
+- pubu
+- pubugn
+- puor
+- purd
+- purples
+- rdbu
+- rdgy
+- rdpu
+- rdylbu
+- rdylgn
+- reds
+- sand
+- set1
+- set2
+- set3
+- spectral
+- viridis
+- whgnbu
+- whylrd
+- ylgn
+- ylgnbu
+- ylorbr
+- ylorrd
+- ylrd
+
+# COPYRIGHT
+
+Copyright © 2018, 2019, 2020, 2023 |Méso|Star> <contact@meso-star.com>++
+Copyright © 2018, 2019 Centre National de la Recherche Scientifique++
+Copyright © 2018, 2019 Université Paul Sabatier
+
+# LICENSE
+
+*htpp* is free software released under the GPLv3+ license: GNU GPL version 3 or
+later <https://gnu.org/licenses/gpl.html>. You are free to change and
+redistribute it. There is NO WARRANTY, to the extent permitted by law.
+
+# SEE ALSO
+
+. Portable PixMap - <http://netpbm.sourceforge.net/doc/ppm.html>
+. Filmic tone mapping operator -
+ <http://filmicworlds.com/blog/filmic-tonemapping-operators/>
+. Star-ColorMap - <https://gitlab.com/meso-star/star-cmap>
+
+*feh*(1),
+*gnuplot*(1),
+*htrdr-image*(5)
diff --git a/doc/htpp.1.txt b/doc/htpp.1.txt
@@ -1,188 +0,0 @@
-// Copyright (C) 2018, 2019, 2020 |Meso|Star> (contact@meso-star.com)
-// Copyright (C) 2018, 2019 CNRS, Université Paul Sabatier
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-:toc:
-
-htpp(1)
-=======
-
-NAME
-----
-htpp - High-Tune: Post-Process
-
-SYNOPSIS
---------
-[verse]
-htpp [_option_] ... [_input_]
-
-DESCRIPTION
------------
-
-*htpp* post-processes a *htrdr-image*(5) and converts it to a PPM image [1] or
-to a *gnuplot*(1) script. If _input_ is not defined, the *htrdr-image*(5) is
-read from standard input. Two post-processing procedures are provided: the
-post-processing of the image colors (option *-i*), and the mapping of a given
-pixel component onto a color ramp (option "*-m*). By default, *htpp*
-post-processes the image color.
-
-To post-process the image colors (option *-i*) *htpp* assumes that the first,
-the third and the fifth components of each *htrdr-image*(5) pixel encode a
-color with respect to the CIE 1931 XYZ color space. *htpp* first tone maps
-these colors with the following filmic tone mapping operator [2]:
-
- out-color = f(in-color * exposure) / f(white-value * exposure)
-
-with:
-
- f(x) = (x * (A*x + C*B) + D*E) / (x*(A*x + B + D*F)) - E/F
-
- A = 0.15
- B = 0.50
- C = 0.10
- D = 0.20
- E = 0.02
- F = 0.30
-
-The _exposure_ term is an user-defined parameter provided as the _exposure_
-image option. If not defined, a default _exposure_ of 1 is used. The
-_white-value_ is either defined by the user through the _white_ image option
-or automatically computed as the radiance that is such that 99.5% of pixel
-radiances are less than _white-value. Once tone mapped, the pixels are
-transformed from the CIE 1931 XYZ color space into the sRGB linear color space
-before being gamma corrected. Finally, the resulting pixel components are
-clamped to [0, 1] and encoded on 8-bits.
-
-The mapping of a pixel component onto a color ramp is controlled by the *-m*
-option. The pixel component to post-process is defined by the _pixcpnt_
-mapping option. *htpp* normalizes this component according to its range onto
-the whole image or with respect to the _range_ mapping option if it is
-defined. The resuling value is then mapped to a built-in color ramp whose name
-is defined by the _palette_ mapping option.
-
-OPTIONS
--------
-*-f*::
- Force overwrite of the _output_ file.
-
-*-h*::
- List short help and exit.
-
-*-i* <__sub-option__>[:<__sub-option__> ...]::
- Post-process the color of the *htrdr-image*(5). The first, the third and the
- fifth pixel components are assumed to store the pixel color encoded into the
- CIE 1931 XYZ color space. Available sub-options are:
-
- **default**;;
- Use the default values of the sub-options.
-
- **exposure**=__real__;;
- Pixel exposure. By default its value is 1.
-
- **white**=__radiance__;;
- Radiance in the _input_ image that will represent the white color in
- _output_. If not defined, the white value is automatically computed from
- the radiance of the _input_ image.
-
-*-m* <__sub-option__>[:<__sub-option__> ...]::
- Map a pixel component to a regular color. Available sub options are:
-
- **default**;;
- Use the default values of the sub-options.
-
- **palette**=__palette-name__;;
- Color palette to use. Available palettes are the ones supported
- by the Star-ColorMap library [3]. The default palette is inferno.
-
- **pixcpnt**=__pixel-component__;;
- Index in [0, 7] of the pixel component to map. The default pixel component
- is the first one, i.e. *pixcpnt*=0.
-
- **range**=__min__,__max__;;
- Range of the values to map. A degenerated range (i.e. __min__ >= __max__)
- means that this range is automatically computed from the boundaries of the
- selected pixel component over the whole image. This is the default
- comportment.
-
- **gnuplot**;;
- The _output_ image is formatted as a gnuplot script rather than a PPM
- image. Once executed, the script generates a PNG image with an embedded
- color ramp. Note that this script can be edited in order to adjust the
- generated image to any requirements.
-
-*-o* _output_::
- File where the result is written. If not defined, write _output_ to standard
- output.
-
-*-t* _threads-count_::
- Hint on the number of threads to use. By default use as many threads as CPU
- cores.
-
-*-v*::
- Make *htpp* verbose. When used in post-processing of the pixel color (*-i*
- option), this option displays the radiance corresponding to the __white__
- color in the output image. In pixel component mapping mode (*-m* option),
- this option displays the color ramp and its associated values.
-
-*--version*::
- Display version information and exit.
-
-EXAMPLES
---------
-
-Post-process the *htrdr-image*(5) saved in *img.htrdr* and write the resulting
-PPM image in *img.ppm*. Use the *-f* option to overwrite *img.ppm* if it
-already exists:
-
- $ htpp -f -o img.ppm img.htrdr
-
-Convert *img.htrdr* and visualise the resulting image by redirecting the
-standard output to the *feh*(1) image viewer. Use an _exposure_ of *0.2* and
-explicitly define the white color to *31.2* W/sr/m^2:
-
- $ htpp -i exposure=0.2:white=31.2 img.htrdr | feh -
-
-Use the *-m* option to map the values of the second pixel component clamped in
-[0, 2] to the color ramp _magma_.
-
- $ htpp -v -m pixcpnt=1:palette=magma:range=0,2 img.htrdr | feh -
-
-Use the *-m* option to map the values of the sixth pixel component and write
-it as a gnuplot script. Run *gnuplot*(1) to generate a PNG of the result and
-visualise the resulting image with *feh*(1).
-
- $ htpp -m pixcpnt=6:gnuplot -o img.gp img.htrdr
- $ gnuplot img.gp | feh -
-
-NOTES
------
-1. Portable PixMap - <http://netpbm.sourceforge.net/doc/ppm.html>
-2. Filmic tone mapping operator -
- <http://filmicworlds.com/blog/filmic-tonemapping-operators/>
-3. Star-ColorMap - <https://gitlab.com/meso-star/star-cmap>
-
-COPYRIGHT
----------
-Copyright © 2018, 2019, 2020 |Meso|Star> <contact@meso-star.com>.
-Copyright © 2018, 2019 CNRS, Université Paul Sabatier
-<contact-edstar@laplace.univ-tlse.fr>. *htpp* is free software released under
-the GPLv3+ license: GNU GPL version 3 or later
-<https://gnu.org/licenses/gpl.html>. You are free to change and redistribute
-it. There is NO WARRANTY, to the extent permitted by law.
-
-SEE ALSO
---------
-*feh*(1),
-*gnuplot*(1)
-*htrdr-image*(5)