Sophie

Sophie

distrib > Mageia > 6 > i586 > media > core-release > by-pkgid > 3d21bba46faba8ab8bc0569a35594b3e > files > 20

ocaml-gg-devel-0.8.0-6.mga6.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Gg.Box3.html">
<link rel="next" href="Gg.Raster.html">
<link rel="Up" href="Gg.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Gg" rel="Chapter" href="Gg.html"><link title="Constructors, accessors and constants" rel="Section" href="#colors">
<link title="Functions" rel="Section" href="#1_Functions">
<link title="Color conversions" rel="Section" href="#conversions">
<link title="Color spaces" rel="Section" href="#1_Colorspaces">
<link title="Color profiles" rel="Section" href="#colorprofiles">
<link title="sRGB" rel="Subsection" href="#srgb">
<link title="CIE L*u*v*" rel="Subsection" href="#luv">
<link title="CIE L*C*h^{uv}" rel="Subsection" href="#lch_uv">
<link title="CIE L*a*b*" rel="Subsection" href="#lab">
<link title="CIE L*C*h^{ab}" rel="Subsection" href="#lch_ab">
<title>Gg.Color</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Gg.Box3.html" title="Gg.Box3">Previous</a>
&nbsp;<a class="up" href="Gg.html" title="Gg">Up</a>
&nbsp;<a class="post" href="Gg.Raster.html" title="Gg.Raster">Next</a>
</div>
<h1>Module <a href="type_Gg.Color.html">Gg.Color</a></h1>
<pre><span class="keyword">module</span> Color: <code class="code"><span class="keyword">sig</span></code> <a href="Gg.Color.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
Colors and color profiles.
<p>

    <code class="code"><span class="constructor">Color</span></code> provides some function to operate on <a href="Gg.Color.html#TYPEt">color</a> values
    and basic support for ICC based <a href="Gg.Color.html#TYPEprofile">color profiles</a> to 
    precisely specify how to interpret raw color samples.
<p>

    <h3 id="3_References">References.</h3>
    <ul>
<li>Charles Poynton. 
       <em><a href="http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html">
       Frequently asked questions about color</a></em>. 2006</li>
<li>Charles Poynton. 
       <em><a href="http://www.poynton.com/PDFs/Guided_tour.pdf">A guided tour of 
       color space</a></em>. 1997</li>
<li>Bruce MacEvoy. 
       <a href="http://www.handprint.com/LS/CVS/color.html">Color
       vision</a> and
      <a href="http://www.handprint.com/HP/WCL/color7.html">modern color models</a>.</li>
<li>International Color Consortium. 
       <em><a href="http://www.color.org/icc_specs2.xalter">ICC.1:2010-12 Image 
       technology colour management - Architecture, profile format, and 
       data structure</a></em>. 2010.</li>
</ul>
<br>
</div>
<hr width="100%">
<br>
<h1 id="colors">Constructors, accessors and constants</h1><br>
<pre><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> = <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code> </pre>
<div class="info">
The type for colors in a device independent RGB color space with
      an alpha component. The color space is defined by a D65 white
      point and the ITU-R BT.709 primaries (corresponds to a <em>      linearized</em>
      <a href="http://www.color.org/chardata/rgb/srgb.xalter">sRGB</a> space).
      The <em>alpha</em> component represent the color's opacity ranging
      from <code class="code">0.</code>, a fully transparent color, to <code class="code">1.</code> a completly opaque
      one.<br>
</div>

<pre><span id="TYPEstops"><span class="keyword">type</span> <code class="type"></code>stops</span> = <code class="type">(float * <a href="Gg.html#TYPEcolor">Gg.color</a>) list</code> </pre>
<div class="info">
The type for color stops. A piecewise linear color curve.<br>
</div>

<pre><span id="VALv"><span class="keyword">val</span> v</span> : <code class="type">float -> float -> float -> float -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">v r g b a</code> is the <em>linear</em> sRGB color <code class="code">(r, g, b, a)</code> as 
      a color value.<br>
</div>
<pre><span id="VALv_srgb"><span class="keyword">val</span> v_srgb</span> : <code class="type">?a:float -> float -> float -> float -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">v r g b ~a</code> is the sRGB color <code class="code">(r, g, b, a)</code> converted to a color 
      value.<br>
</div>
<pre><span id="VALv_srgbi"><span class="keyword">val</span> v_srgbi</span> : <code class="type">?a:float -> int -> int -> int -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">v_srgbi r g b ~a</code> is the sRGB color <code class="code">(r,g,b,a)</code> converted to 
      a color value by <code class="code">(v_srgb (float r /. 255.) (float g /. 255.) 
      (float b /. 255.) ~a</code>)<br>
</div>
<pre><span id="VALr"><span class="keyword">val</span> r</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> float</code></pre><div class="info">
<code class="code">r c</code> is the red component of <code class="code">c</code>.<br>
</div>
<pre><span id="VALg"><span class="keyword">val</span> g</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> float</code></pre><div class="info">
<code class="code">g c</code> is the green component of <code class="code">c</code>.<br>
</div>
<pre><span id="VALb"><span class="keyword">val</span> b</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> float</code></pre><div class="info">
<code class="code">b c</code> is the blue component of <code class="code">c</code>.<br>
</div>
<pre><span id="VALa"><span class="keyword">val</span> a</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> float</code></pre><div class="info">
<code class="code">a c</code> is the alpha component of <code class="code">c</code>.<br>
</div>
<pre><span id="VALvoid"><span class="keyword">val</span> void</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">void</code> is <code class="code">(v 0. 0. 0. 0.)</code> an invisible color.<br>
</div>
<pre><span id="VALblack"><span class="keyword">val</span> black</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">black</code> is <code class="code">(v 0. 0. 0. 1.)</code><br>
</div>
<pre><span id="VALgray"><span class="keyword">val</span> gray</span> : <code class="type">?a:float -> float -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">gray a g</code> is the sRGB color <code class="code">(g, g, g, a)</code> converted to color a 
      value.<br>
</div>
<pre><span id="VALwhite"><span class="keyword">val</span> white</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">white</code> is <code class="code">(v 1. 1. 1. 1.)</code><br>
</div>
<pre><span id="VALred"><span class="keyword">val</span> red</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">red</code> is <code class="code">(v 1. 0. 0. 1.)</code><br>
</div>
<pre><span id="VALgreen"><span class="keyword">val</span> green</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">green</code> is <code class="code">(v 0. 1. 0. 1.)</code><br>
</div>
<pre><span id="VALblue"><span class="keyword">val</span> blue</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">blue</code> is <code class="code">(v 0. 0. 1. 1.)</code><br>
</div>
<br>
<h1 id="1_Functions">Functions</h1><br>
<pre><span id="VALblend"><span class="keyword">val</span> blend</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">blend src dst</code> is <code class="code">src</code> blended over <code class="code">dst</code> using
      source over destination alpha blending. See Alvy Ray Smith. <em>      <a href="http://alvyray.com/Memos/MemosCG.htm#ImageCompositing">Image 
       compositing fundamentals</a></em>. 1995.<br>
</div>
<pre><span id="VALclamp"><span class="keyword">val</span> clamp</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">clamp c</code> is <code class="code">c</code> with all components clamped to [<code class="code">0;1</code>]. <code class="code">nan</code> 
      components are left untouched.<br>
</div>
<pre><span id="VALwith_a"><span class="keyword">val</span> with_a</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> float -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">with_a c a</code> is the same color as <code class="code">c</code> but with the alpha 
      component <code class="code">a</code>.<br>
</div>
<br>
<h1 id="conversions">Color conversions</h1> 
<p>

      <b>Note.</b> In the following conversions all color spaces carry an
      alpha component.  The alpha component is always left untouched
      by the conversions.<br>
<br>
<h2 id="srgb">sRGB</h2><br>
<pre><span id="TYPEsrgb"><span class="keyword">type</span> <code class="type"></code>srgb</span> = <code class="type"><a href="Gg.html#TYPEv4">Gg.v4</a></code> </pre>
<div class="info">
The type for colors in the 
     <a href="http://www.color.org/chardata/rgb/srgb.xalter">sRGB</a> color space 
     with an alpha component. This is the color space used, for example,
     by CSS.<br>
</div>

<pre><span id="VALof_srgb"><span class="keyword">val</span> of_srgb</span> : <code class="type"><a href="Gg.Color.html#TYPEsrgb">srgb</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">of_srgb c</code> is the sRGB color <code class="code">c</code> as a <code class="code"><span class="constructor">Gg</span></code> color.<br>
</div>
<pre><span id="VALto_srgb"><span class="keyword">val</span> to_srgb</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.Color.html#TYPEsrgb">srgb</a></code></pre><div class="info">
<code class="code">to_srgb c</code> is the <code class="code"><span class="constructor">Gg</span></code> color <code class="code">c</code> as a sRGB color.<br>
</div>
<br>
<h2 id="luv">CIE L*u*v*</h2><br>
<pre><span id="TYPEluv"><span class="keyword">type</span> <code class="type"></code>luv</span> = <code class="type"><a href="Gg.html#TYPEv4">Gg.v4</a></code> </pre>
<div class="info">
The type for colors in the CIE L*u*v* color space with a D65 reference
      white point and an alpha component. The meaning and range of the 
      components is:
      <ul>
<li>L* is lightness in the range <code class="code">0.</code> to <code class="code">100.</code></li>
<li>u*'s practical range is <code class="code">-134.</code> to <code class="code">220.</code></li>
<li>v*'s practical range is <code class="code">-140.</code> to <code class="code">122.</code></li>
</ul>
<br>
</div>

<pre><span id="VALof_luv"><span class="keyword">val</span> of_luv</span> : <code class="type"><a href="Gg.Color.html#TYPEluv">luv</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">of_luv c</code> is the L*u*v* color <code class="code">c</code> as a <code class="code"><span class="constructor">Gg</span></code> color.<br>
</div>
<pre><span id="VALto_luv"><span class="keyword">val</span> to_luv</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.Color.html#TYPEluv">luv</a></code></pre><div class="info">
<code class="code">to_luv c</code> is the <code class="code"><span class="constructor">Gg</span></code> color <code class="code">c</code> as a L*u*v* color.<br>
</div>
<br>
<h2 id="lch_uv">CIE L*C*h<sub class="subscript">uv</sub></h2><br>
<pre><span id="TYPElch_uv"><span class="keyword">type</span> <code class="type"></code>lch_uv</span> = <code class="type"><a href="Gg.html#TYPEv4">Gg.v4</a></code> </pre>
<div class="info">
The type for colors in the CIE L*C*h<sub class="subscript">uv</sub> color space with a 
      D65 reference white point and an alpha component. This color 
      space is CIE L*u*v* with polar coordinates, the meaning and range 
      of the components is:
     <ul>
<li>L* is the lightness in the range <code class="code">0.</code> to <code class="code">100.</code></li>
<li>C* represents chroma, in the range <code class="code">0.</code> to <code class="code">260.77</code> in practice.</li>
<li>h represents hue in degrees in the range <code class="code">0.</code> to <code class="code">2pi</code>.</li>
</ul>
<br>
</div>

<pre><span id="VALof_lch_uv"><span class="keyword">val</span> of_lch_uv</span> : <code class="type"><a href="Gg.Color.html#TYPElch_uv">lch_uv</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">of_lch_uv c</code> is the L*C*h<sub class="subscript">uv</sub> color <code class="code">c</code> as a <code class="code"><span class="constructor">Gg</span></code> color.<br>
</div>
<pre><span id="VALto_lch_uv"><span class="keyword">val</span> to_lch_uv</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.Color.html#TYPElch_uv">lch_uv</a></code></pre><div class="info">
<code class="code">to_lch_uv c</code> is the <code class="code"><span class="constructor">Gg</span></code> color <code class="code">c</code> as a L*C*h<sub class="subscript">uv</sub>.<br>
</div>
<br>
<h2 id="lab">CIE L*a*b*</h2><br>
<pre><span id="TYPElab"><span class="keyword">type</span> <code class="type"></code>lab</span> = <code class="type"><a href="Gg.html#TYPEv4">Gg.v4</a></code> </pre>
<div class="info">
The type for colors in the CIE L*a*b* color space with a D50 reference
      white point and an alpha component. The meaning and range of the 
      components is:
      <ul>
<li>L* is lightness in the range <code class="code">0.</code> to <code class="code">100.</code></li>
<li>a* and b*'s practical range is <code class="code">-128.</code> to <code class="code">127.</code></li>
</ul>
<br>
</div>

<pre><span id="VALof_lab"><span class="keyword">val</span> of_lab</span> : <code class="type"><a href="Gg.html#TYPEv4">Gg.v4</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">of_lab c</code> is the L*a*b* color <code class="code">c</code> as a <code class="code"><span class="constructor">Gg</span></code> color value.<br>
</div>
<pre><span id="VALto_lab"><span class="keyword">val</span> to_lab</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.html#TYPEv4">Gg.v4</a></code></pre><div class="info">
<code class="code">to_lab c</code> is the <code class="code"><span class="constructor">Gg</span></code> color <code class="code">c</code> as a L*a*b* color.<br>
</div>
<br>
<h2 id="lch_ab">CIE L*C*h<sub class="subscript">ab</sub></h2><br>
<pre><span id="TYPElch_ab"><span class="keyword">type</span> <code class="type"></code>lch_ab</span> = <code class="type"><a href="Gg.html#TYPEv4">Gg.v4</a></code> </pre>
<div class="info">
The type for colors in the CIE L*C*h*<sub class="subscript">ab</sub> color space with a 
      D50 reference white point and an alpha component. This color 
      space is CIE L*a*b* with polar coordinates, the meaning and range 
      of the components is:
     <ul>
<li>L* is the lightness in the range <code class="code">0.</code> to <code class="code">100.</code></li>
<li>C* represents chroma, in the range <code class="code">0.</code> to 
        <code class="code">181.02</code>, but less in practice.</li>
<li>h represents hue in degrees in the range <code class="code">0.</code> to <code class="code">2pi</code>.</li>
</ul>
<br>
</div>

<pre><span id="VALof_lch_ab"><span class="keyword">val</span> of_lch_ab</span> : <code class="type"><a href="Gg.Color.html#TYPElch_ab">lch_ab</a> -> <a href="Gg.html#TYPEcolor">Gg.color</a></code></pre><div class="info">
<code class="code">of_lch_ab c</code> is the L*C*h<sub class="subscript">ab</sub> color <code class="code">c</code> as a <code class="code"><span class="constructor">Gg</span></code> color.<br>
</div>
<pre><span id="VALto_lch_ab"><span class="keyword">val</span> to_lch_ab</span> : <code class="type"><a href="Gg.html#TYPEcolor">Gg.color</a> -> <a href="Gg.Color.html#TYPElch_ab">lch_ab</a></code></pre><div class="info">
<code class="code">to_lch_ab c</code> is the <code class="code"><span class="constructor">Gg</span></code> color <code class="code">c</code> as a L*C*h<sub class="subscript">ab</sub>.<br>
</div>
<br>
<h1 id="1_Colorspaces">Color spaces</h1><br>
<pre><span id="TYPEspace"><span class="keyword">type</span> <code class="type"></code>space</span> = <code class="type">[ `CLR2<br>       | `CLR3<br>       | `CLR4<br>       | `CLR5<br>       | `CLR6<br>       | `CLR7<br>       | `CLR8<br>       | `CLR9<br>       | `CLRA<br>       | `CLRB<br>       | `CLRC<br>       | `CLRD<br>       | `CLRE<br>       | `CLRF<br>       | `CMY<br>       | `CMYK<br>       | `Gray<br>       | `HLS<br>       | `HSV<br>       | `Lab<br>       | `Luv<br>       | `RGB<br>       | `XYZ<br>       | `YCbr<br>       | `Yxy ]</code> </pre>
<div class="info">
The type for color spaces. These correspond to the ICC v4 supported 
      color space, see the
      <a href="http://www.color.org/icc_specs2.xalter">specification</a>,
      section 7.2.6.<br>
</div>

<pre><span id="VALspace_dim"><span class="keyword">val</span> space_dim</span> : <code class="type"><a href="Gg.Color.html#TYPEspace">space</a> -> int</code></pre><div class="info">
<code class="code">space_dim s</code> is the dimension of the color space <code class="code">s</code>.<br>
</div>
<pre><span id="VALpp_space"><span class="keyword">val</span> pp_space</span> : <code class="type">Format.formatter -> <a href="Gg.Color.html#TYPEspace">space</a> -> unit</code></pre><div class="info">
<code class="code">pp_space s</code> prints a textual representation of <code class="code">s</code> on <code class="code">ppf</code>.<br>
</div>
<br>
<h1 id="colorprofiles">Color profiles</h1><br>
<pre><span id="TYPEprofile"><span class="keyword">type</span> <code class="type"></code>profile</span> </pre>
<div class="info">
The type for <a href="http://www.color.org/">ICC</a> color profiles. A
      color profile can describe the characteristics of a color space,
      an input or output device and provide a mapping to a profile
      connection space (PCS), which is either CIE L*a*b* or XYZ with a
      D50 white point.  For more information about ICC profile consult
      the <a href="http://www.color.org/faqs.xalter">ICC FAQ</a> and the
      <a href="http://color.org/icc_specs2.xalter">ICC v4 specification</a>.
<p>

      This module defines only a profile for the color space of 
      <a href="Gg.html#TYPEcolor"><code class="code"><span class="constructor">Gg</span>.color</code></a> and a grayscale color space.<br>
</div>

<pre><span id="VALprofile_of_icc"><span class="keyword">val</span> profile_of_icc</span> : <code class="type">string -> <a href="Gg.Color.html#TYPEprofile">profile</a> option</code></pre><div class="info">
<code class="code">profile_of_icc s</code> is a profile from the ICC profile byte 
      stream <code class="code">s</code>. <code class="code"><span class="constructor">None</span></code> is returned if <code class="code">s</code> doesn't seem to be a ICC profile. 
<p>

      <b>Note</b> A profile value is returned if a color space can be 
      extracted, it doesn't guarantee a correct ICC profile byte stream.<br>
</div>
<pre><span id="VALprofile_to_icc"><span class="keyword">val</span> profile_to_icc</span> : <code class="type"><a href="Gg.Color.html#TYPEprofile">profile</a> -> string</code></pre><div class="info">
<code class="code">profile_to_icc p</code> is <code class="code">p</code>'s ICC profile byte stream.<br>
</div>
<pre><span id="VALprofile_space"><span class="keyword">val</span> profile_space</span> : <code class="type"><a href="Gg.Color.html#TYPEprofile">profile</a> -> <a href="Gg.Color.html#TYPEspace">space</a></code></pre><div class="info">
<code class="code">profile_space p</code> is <code class="code">p</code>'s color space.<br>
</div>
<pre><span id="VALprofile_dim"><span class="keyword">val</span> profile_dim</span> : <code class="type"><a href="Gg.Color.html#TYPEprofile">profile</a> -> int</code></pre><div class="info">
<code class="code">profile_space p</code> is <code class="code">space_dim (profile_space d)</code>.<br>
</div>
<pre><span id="VALp_gray_l"><span class="keyword">val</span> p_gray_l</span> : <code class="type"><a href="Gg.Color.html#TYPEprofile">profile</a></code></pre><div class="info">
<code class="code">p_gray_l</code> is a linear gray color profile<br>
</div>
<pre><span id="VALp_rgb_l"><span class="keyword">val</span> p_rgb_l</span> : <code class="type"><a href="Gg.Color.html#TYPEprofile">profile</a></code></pre><div class="info">
<code class="code">p_rgb_l</code> is the color profile of <a href="Gg.Color.html#TYPEt">color</a> values.<br>
</div>
</body></html>