summary refs log tree commit diff
path: root/ppmbrighten.html
blob: 56188ffca74fcc1142af9eee20b75567def8e807 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD><TITLE>Ppmbrighten User Manual</TITLE></HEAD>
<BODY>
<H1>ppmbrighten</H1>
Updated: 26 October 2012
<BR>
<A HREF="#index">Table Of Contents</A>

<H2>NAME</H2>
ppmbrighten - change a PPM image's Saturation and Value

<H2 id="synopsis">SYNOPSIS</H2>

<b>ppmbrighten</b>
[<b>-normalize</b>]
[<b>-saturation </b>[<b>+</b>|<b>-</b><i>saturation_percent</i>]]
[<b>-value </b>[<b>+</b>|<b>-</b><i>value_percent</i>]]
<i>ppmfile</i>

<P>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.

<H2 id="description">DESCRIPTION</H2>

<p>This program is part of <a href="index.html">Netpbm</a>.

<p><b>ppmbrighten</b> increases or decreases the Saturation and Value
(from the HSV color space) of each pixel of a PPM image.  You specify
the per centage change for each of those parameters.

<p>You can also remap the colors of the pixels so their Values cover
the full range of possible Values.

<p>Hue-Saturation-Value, or HSV, is one way to represent a color, like
the more well-known RGB.  Hue, Saturation, and Value are numbers in
the range from 0 to 1.  We always capitalize them in this document
when we mean the number from the HSV color space, especially since
"value" as a conventional English word has a much more abstract
meaning.

<p>Value is a measure of how bright the color is, relative to some specified
maximum (the PPM format is also defined in terms of a specified maximum
brightness -- For the purposes of this program, they are the same).  In
particular, it is the brightness of the brightest primary color component of
the color divided by the maximum brightness possible for a component.  Zero
Value means black.  White has full Value.

<p>Hue is an indication of the secondary color with the same brightness
that most closely approximates the color.  A secondary color is made
of a combination of at most two of the primary colors.

<p>Saturation is a measure of how close the color is to the color
indicated by the Hue and Value.  A lower number means more light of
the third primary color must be added to get the exact color.  Full
Saturation means the color is a secondary color.  Zero Saturation
means the color is gray (or black or white).  Decreasing the
saturation of a color tends to make it washed out.

<p>If it is impossible to increase the Value of a pixel by the amount you
specify (e.g. the Value is .5 and you specify +200%), <b>ppmbrighten</b>
increases it to full Value instead.

<p>If it is impossible to increase the Saturation of a pixel by the amount
you specify (e.g. it is already half saturated and you specify +200%),
<b>ppmbrighten</b> increases it to full Saturation instead.

<p>For a simpler kind of brightening, you can use <b>pamfunc -multiplier</b>
simply to increase the brightness of each pixel by a specified per centage,
clipping each RGB component where the calculated brightness would exceed full
brightness.  Thus, the brightest colors in the image would change chromaticity
in addition to not getting the specified brightness boost.
For <em>decreasing</em> brightness, <b>pamfunc</b> should do the same thing as
<b>ppmbrighten</b>.

<p><b>ppmflash</b> does another kind of brightening.  It changes the
color of each pixel to bring it a specified per centage closer to white.
This increases the value and saturation.

<H2 id="examples">EXAMPLES</H2>
<p>To double the Value of each pixel:
<pre>
ppmbrighten -v 100
</pre>

<p>To double the Saturation and halve the Value of each pixel:
<pre>
ppmbrighten -s 100 -v -50
</pre>

<H2 id="options">OPTIONS</H2>

<DL>
<DT><b>-value </b><i>value_percent</i>

<DD>This option specifies the amount, as a per centage, by which you want
to change the Value of each pixel.  It may be negative.

<DT><b>-saturation </b><i>value_percent</i>

<DD>This option specifies the amount, as a per centage, by which you want
to change the Saturation of each pixel.  It may be negative.


<DT><b>-normalize</b>

<DD>This option causes <b>ppmbrighten</b> to linearly remap the Values
of the pixels to cover the range 0 to 1.  The option name is wrong --
this operation is not normalization (it was named in error and the
name has been kept for backward compatibility).

<p><b>ppmbrighten</b> applies the brightening that you specify with 
the <b>-value</b> option <em>after</em> the remapping.

<p>Before Netpbm 10.14 (March 2003), your input must be from a seekable
file (not a pipe) to use <b>-normalize</b>.  If it isn't, the program fails
with a bogus error message.

</DL>  

<H2 id="seealso">SEE ALSO</H2>

<A HREF="pnmnorm.html">pnmnorm</A>, 
<A HREF="ppmdim.html">ppmdim</A>, 
<A HREF="pamfunc.html">pamfunc</A>, 
<A HREF="ppmflash.html">ppmflash</A>, 
<A HREF="pamdepth.html">pamdepth</A>, 
<A HREF="pnmgamma.html">pnmgamma</A>, 
<A HREF="ppmhist.html">ppmhist</A>, 
<A HREF="ppm.html">ppm</A>

<H2 id="author">AUTHOR</H2>

<p>Copyright (C) 1990 by Brian Moffet.
Copyright (C) 1989 by Jef Poskanzer.

<P>
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided
that the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.  This software is provided &quot;as is&quot; without express or
implied warranty.

<HR>
<H2 id="index">Table Of Contents</H2>
<UL>
<LI><A HREF="#synopsis">SYNOPSIS</A>
<LI><A HREF="#description">DESCRIPTION</A>
<LI><A HREF="#examples">EXAMPLES</A>
<LI><A HREF="#options">OPTIONS</A>
<LI><A HREF="#seealso">SEE ALSO</A>
<LI><A HREF="#author">AUTHOR</A>
</UL>
</BODY>
</HTML>