ch07s04.html
10.4 KB
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
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Fine tuning the color</title><link rel="stylesheet" type="text/css" href="manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.0"><link rel="home" href="index.html" title="JpGraph Manual"><link rel="up" href="ch07.html" title="Chapter 7. Color handling"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Fine tuning the color</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center">Chapter 7. Color handling</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1" title="Fine tuning the color"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2496338"></a>Fine tuning the color</h2></div></div></div>
<div class="sect2" title="Specifying the alpha channel (color transparency)"><div class="titlepage"><div><div><h3 class="title"><a name="sec2.alpha-channel"></a>Specifying the alpha channel (color transparency)</h3></div></div></div>
<p>Colors can also be made semi-transparent by specifying a transparency value
(or as it is also known an <span class="italic">alpha channel value</span>). This will instruct the
library to mix the foreground color with a certain amount of the background
colors creating a "shine-through" effect.</p>
<p>The alpha channel is specified as a real number in the range [0.0, 1.0] where
0.0 means no transparency and 1.0 means full transparency (i.e. only the
background color is shown). The transparency is added as a postfix to the color
specification separated by a '@' (at) character. It is often most used with area
fills (i.e. when using <code class="code">SetFillColor()</code>)</p>
<p>For example the following are valid alpha channel modifiers</p>
<p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<p><code class="code">SetFillColor('red@0.2')</code>, A slightly transparent red
color</p>
</li><li class="listitem">
<p><code class="code">SetFillColor('red@0.8')</code>, An almost completely
transparent color</p>
</li></ul></div><p>
</p>
<p>The result of using different alpha modifiers are shown in <a class="xref" href="ch07s04.html#fig.alpha-channel" title="Figure 7.1. Using alpha channel modifiers">Figure 7.1. Using alpha channel modifiers</a> where the blue color is made more and more
transparent to allow the red bar in the background to become more and more
visible.</p>
<p>
</p><div class="figure"><a name="fig.alpha-channel"></a><p class="title"><b>Figure 7.1. Using alpha channel modifiers</b></p><div class="figure-contents">
<div class="mediaobject"><img src="images/alpha-channel.png" alt="Using alpha channel modifiers"></div>
</div></div><p><br class="figure-break">
</p>
<p>As a final example of how to use transparency we show a graph in <a class="xref" href="ch07s04.html#fig.barlinealphaex1" title="Figure 7.2. Making use of transparency to combine two plots (barlinealphaex1.php)">Figure 7.2. Making use of transparency to combine two plots <code class="uri"><a class="uri" href="example_src/barlinealphaex1.html" target="_top">(<code class="filename">barlinealphaex1.php</code>)</a></code> </a> that uses transparency to allow an area
plot to be mixed with a bar graph.</p>
<p>
</p><div class="figure"><a name="fig.barlinealphaex1"></a><p class="title"><b>Figure 7.2. Making use of transparency to combine two plots <code class="uri"><a class="uri" href="example_src/barlinealphaex1.html" target="_top">(<code class="filename">barlinealphaex1.php</code>)</a></code> </b></p><div class="figure-contents"> <span class="inlinemediaobject"><img src="images/barlinealphaex1.png" alt="Making use of transparency to combine two plots (barlinealphaex1.php)"></span> </div></div><p><br class="figure-break">
</p>
<div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3>
<p>For all graph examples shown in this manual you can always click on the
file name in the title of the graph to view the actual source that created
the graph.</p>
</div>
</div>
<div class="sect2" title="Adjusting the brightness"><div class="titlepage"><div><div><h3 class="title"><a name="id2496356"></a>Adjusting the brightness</h3></div></div></div>
<p>Since all colors that can be displayed on a computer can be modeled with the
appropriate RGB triple the above ways will allow you to specify any colors you
might need. However, conceptually it might be easier to think of colors in terms
of "a light blue" instead of a modified RGB triple so the library allows you to
take a basic color and apply a brightness correction factor.</p>
<p>The brightness factor is a postfix to the color string separated from the core
color with a ':' (colon) character. The brightness factor is a real number in
the range of [0.0, 2.0]. Using a brightness factor of 0.0 means that the color
will be black (no brightness at all) and a factor of 2.0 means that the color is
white (maximum brightness). Using a factor of 1 will leave the original color
untouched.</p>
<p>The brightness factor can be specified for named and HTML colors, see <a class="xref" href="ch07s04.html#fig.orange-scale" title="Figure 7.3. Adjusting brightness of named color specifier">Figure 7.3. Adjusting brightness of named color specifier</a> and <a class="xref" href="ch07s04.html#fig.blueish-scale" title="Figure 7.4. Adjusting brightness of a HTML color specifier">Figure 7.4. Adjusting brightness of a HTML color specifier</a> for more examples how the factor adjusts
the color.</p>
<p>For example, the following code snippets show valid color brightness
modifiers</p>
<p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<p><code class="code">SetColor('red:0.8');</code>, A slightly darker red
color</p>
</li><li class="listitem">
<p><code class="code">SetColor('red:1.5');</code>, A brighter red color</p>
</li><li class="listitem">
<p><code class="code">SetColor('#3485a9:1.8);</code>, A bright blue-greenish
color</p>
</li></ul></div><p>
</p>
<div class="figure"><a name="fig.orange-scale"></a><p class="title"><b>Figure 7.3. Adjusting brightness of named color specifier</b></p><div class="figure-contents">
<div class="mediaobject"><img src="images/orange-scale.png" alt="Adjusting brightness of named color specifier"></div>
</div></div><br class="figure-break">
<div class="figure"><a name="fig.blueish-scale"></a><p class="title"><b>Figure 7.4. Adjusting brightness of a HTML color specifier</b></p><div class="figure-contents">
<div class="mediaobject"><img src="images/blueish-scale.png" alt="Adjusting brightness of a HTML color specifier"></div>
</div></div><br class="figure-break">
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
<p>The brightness factor is a purely linear factor but due to the human eyes
non-linear sensitivity for colors the perceived difference between (for
example) "<code class="code">red:1.1</code>" and "<code class="code">red:1.2</code>" than between
"<code class="code">red:0.2</code>" and "<code class="code">red:0.3</code>" even though the
relative difference is the same.</p>
</div>
</div>
<div class="sect2" title="Combining brightness and transparency adjustment"><div class="titlepage"><div><div><h3 class="title"><a name="id2496665"></a>Combining brightness and transparency adjustment</h3></div></div></div>
<p>It is also possible to combine the two previous discussed modifiers. This is
done by first adding the transparency specifier and then the brightness
adjustment as the following examples demonstrates.</p>
<p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<p><code class="code">SetColor('red@0.7:1.2')</code>, A highly transparent
slightly bright red color</p>
</li><li class="listitem">
<p><code class="code">SetFillColor('#4545aa@0.3:1.5')</code>, A bright blueish
semi transparent color</p>
</li></ul></div><p>
</p>
</div>
</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"><a accesskey="u" href="ch07.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>