ch07s04.html 10.4 KB
<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>