XPAND(9.1) XPAND(9.1)
NAME
xpand, picnegate - adjust dynamic range
SYNOPSIS
fb/xpand [ -s ] [ input ] [ lo hi [ inlo inhi ] ]
fb/picnegate [ input ]
DESCRIPTION
Xpand linearly adjusts the dynamic range of the input picture (default standard input) mapping value inlo to lo, and inhi to hi. Lo and hi
default to 0 and 255. If inlo and inhi are not specified, the lowest and highest pixel values in the input image are used. By default,
then, xpand expands the image's dynamic range by mapping its smallest pixel value to zero and its largest value to 255. Option -s causes
all channels of the input image to be considered together when computing default values for inlo and inhi, thus preserving the hue of rgb
pictures. Otherwise, each channel is treated separately. Option -s has no effect if inlo and inhi are specified on the command line.
There is no requirement that lo be smaller than hi, or that inlo be smaller than inhi, nor that any of those values be in the range 0 to
255. Output values not in the range 0 to 255 are clamped. For example,
xpand 0 255 255 0
inverts the pixel values of its input. For convenience, picnegate is a script that executes this command.
SOURCE
/sys/src/fb/xpand.c
SEE ALSO
picfile(9.6)
XPAND(9.1)
Check Out this Related Man Page
pfsinppm(1) General Commands Manual pfsinppm(1)NAME
pfsinppm - Load images or frames in PBM formats
SYNOPSIS
pfsinppm (<file> [--linear] [--absolute <max_lum>] [--frames <range>] [--skip-missing]) [<file>...]
DESCRIPTION
pfsinppm command loads images in PBM formats (PPM, PNM or PGM) and writes pfs stream to the standard output. The pfs stream is usually
piped to another program for further processing. To detect the format automatically based on the extension, use pfsin command. For more
information on PBM formats, refer to the NetPBM web page (http://netpbm.sourceforge.net/).
Note that PPM or PNM images are low dynamic range. Therefore pixel values (0-255) are scaled to 0-1 before storing them in pfs stream. Sim-
ilarly, before writing low dynamic range image from pfs stream, pixel values are multiplied by 255. By default, the 'LUMINANCE' tag is set
to 'DISPLAY'. The '--linear' switch can force the inverse sRGB transformation and provide linear data. In this case the 'LUMINANCE' tag is
set to 'RELATIVE'. '--absolute' switch can be used to convert pixels to absolute luminance values.
To read images from standard input use a single dash '-' instead of filename. The images are read until EOF is reached.
Each file can contain a %d pattern, which is substituted with frame numbers. The pattern has the same syntax as C printf command. For exam-
ple, you can use %04d to make the frame number four digit with proceedings zeros. See the OPTIONS section below for details.
OPTIONS --frames <range>
Range is given in mathlab / octave format:
startframe:step:endframe
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 frame 0,2,4,... up to the last file that exists.
--skip-missing
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 lumi-
nance 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>.
EXAMPLES
pfsinppm frame%04d.ppm --frames 0:10 | pfsview
Read frames from files frame0000.ppm, frame0001.ppm, ..., frame0010.ppm and show them using pfsview.
BUGS
Please report bugs and comments on implementation to the discussion group http://groups.google.com/group/pfstools
SEE ALSO pfsin(1), pfsout(1)pfsinppm(1)