STANNIX Community


Manual: pamrecolor

Pamrecolor User Manual(1)			   General Commands Manual			   Pamrecolor User Manual(1)

NAME
       pamrecolor - alter colors without affecting luminance

SYNOPSIS
       pamrecolor [--colorspace=name] [--rmult=fraction] [--gmult=fraction] [--bmult=fraction] [--targetcolor=color] [--col‐
       orfile=file] [-randomseed=integer]

       [infile]

       Minimum	unique	abbreviation of option is acceptable.  You may use double hyphens instead of single hyphen to denote
       options.	 You may use white space in place of the equals sign to separate an option name from its value.

DESCRIPTION
       This program is part of Netpbm(1).

       pamrecolor changes an image's colors to be as close as possible to given target colors but with the  constraint	that
       the luminance not be modified.  That is, the original image and the target image will look identical if both are con‐
       verted to grayscale (e.g. with ppmtopgm(1)).  You can have pamrecolor select target colors randomly, specify a single
       hue for the entire image, or take the target colors from a target image.

       In addition to real Netpbm images, pamrecolor works on pseudo-Netpbm images based on arbitrary color spaces.  You can
       define the color space explicitly or choose one of many that pamrecolor knows by name.

       The  output is a PAM image on standard output.  Options control the exact format of the PAM.  If you want a PNM (PBM,
       PGM, or PPM) image, use pamtopnm(1) on the output.  There is no need to convert if you will use the image as input to
       a current Netpbm program, but many other programs don't know what a PAM is.

OPTIONS
       In addition to the options common to all programs based on libnetpbm (most notably  -quiet,  see	  Common Options  ),
       pamrecolor recognizes the following command line options:

       --colorspace=name
	      Designate	 the color space to use for determining the contribution to luminance of each of the red, green, and
	      blue color channels.  For example, in the SMPTE-C color space an RGB color is converted to grayscale by multi‐
	      plying the red channel by 0.2124132, the green channel by 0.7010437, and the blue	 channel  by  0.0865432	 and
	      summing the resulting three products.

	      When  you	 use  this  option, the input and output images are not true Netpbm images, because the Netpbm image
	      format specifies a particular color space.  Instead, you are using a variation on the format in which the sam‐
	      ple values in the raster have different meaning.	Many programs that ostensibly use Netpbm images actually use
	      a variation with a different color space.	 For example, GIMP  uses sRGB internally and if you have GIMP gener‐
	      ate a Netpbm image file, it really generates a variation of the format that uses sRGB.

	      pamrecolor knows the following color spaces (name values):

       adobe

	      Adobe RGB (1998) with a D65 reference white

       apple

	      Apple  RGB with a D65 reference white

       cie

	      CIE with an Illuminant E reference white

       ntsc

	      NTSC RGB with an Illuminant C reference white

       pal

	      PAL/SECAM with a D65 reference white

       smpte-c

	      SMPTE-C with a D65 reference white

       srgb

	      sRGB with a D65 reference white

       wide

	      Wide-gamut RGB with a D50 reference white

	      The default is "ntsc" because this is the color space that the Netpbm formats and many graphics utilities use.
	      As a counterexample, GIMP	 uses sRGB as its native color space.

	      The luminance values pamrecolor uses for each of the above come from Bruce Lindbloom's   Computing  RGB-to-XYZ
	      and XYZ-to-RGB matrices" (1) page.

       --rmult=fraction

       --gmult=fraction

       --bmult=fraction
	      Instead  of selecting a color space by name, you can specify explicitly the contribution of each color channel
	      to the overall luminance as red, green, and blue multipliers.  These three options must be used together,	 and
	      the  three  fraction values must sum to 1.0.  For example, you can specify the ProPhoto (ROMM) RGB color space
	      with "--rmult=0.2880402 --gmult=0.7118741 --bmult=0.0000857".

       --targetcolor=color
	      Designate color as the target color for the image.  pamrecolor will make each pixel as close  as	possible  to
	      color subject to the constraint that the luminance must stay the same as in the original image.  Specify color
	      as in the argument of the pnm_parsecolor() library routine  (e.g., "hotpink" or "#ff69b4").

	      If  you specify neither --targetcolor nor --colorfile, pamrecolor will randomly select a target color for each
	      pixel of the input image.

	      You may not specify both -targetcolor and -colorfile.

       --colorfile=file
	      Take per-pixel target colors from Netpbm file file instead of using a single target color for the	 entire	 im‐
	      age.  file should be a PPM or color PAM image.  If the image in the file wider or taller than the input image,
	      pamrecolor  uses	only the left and top part of it.  If the image is narrower or shorter, pamrecolor considers
	      the image to be repeated in a tile pattern.

	      If you specify neither --targetcolor nor --colorfile, pamrecolor will randomly select a target color for	each
	      pixel of the input image.

	      You may not specify both -targetcolor and -colorfile.

       -randomseed=integer
	      This is the seed for the random number generator that generates the pixels.

	      Use this to ensure you get the same image on separate invocations.

	      By  default, pamrecolor uses a seed derived from the time of day and process ID, which gives you fairly uncor‐
	      related results in multiple invocations.

	      This option was new in Netpbm 10.61 (December 2012).

EXAMPLES
       This command tints an image yellow:

	   pamrecolor --targetcolor=yellow colorpic.pam > yellowpic.pam

       This command takes the colors from colorpicture.ppm and applies them to graypicture.pgm:

	   pamrecolor --colorfile=colorpic.ppm graypic.pgm > colorizedpic.pam

       The grayscale version of colorizedpic.pam will look just like graypic.pgm.  Note that if you use a non-Netpbm tool to
       do the conversion to grayscale, you may additionally need to specify an appropriate --colorspace value for your	con‐
       version tool.

NOTES
       Here are a couple of fun special effects you can produce with pamrecolor:

       •      Specify  a color file that is identical to the input image but with some large, colored text added to it.	 The
	      text will "magically" vanish when the image is converted to grayscale.

       •      Provide a low-contrast grayscale image - perhaps a secret message written in similar shades of gray -  as	 the
	      input  file and a colorful but completely different image as the color file.  If done carefully, the grayscale
	      image can be hidden by the colorful image.  Only people who know to convert the result to	 grayscale  can	 re‐
	      cover the original grayscale image.

       •      Use  --targetcolor=tan  to  make an image look like an old-timey photograph (or, more precisely, a sepia-toned
	      photograph  of the late 1800s).

HISTORY
       Scott Pakin wrote pamrecolor in July 2010.

       pamrecolor was new in Netpbm 10.52 (September 2010).

AUTHOR
       Copyright (C) 2010 Scott Pakin, scott+pbm@pakin.org

SEE ALSO
       •      ppmtopgm(1)

       •      ppmchange(1)

       •      pnmremap(1)

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/pamrecolor.html

netpbm documentation					31 July 2010				   Pamrecolor User Manual(1)