



<!DOCTYPE html>
<html lang="en">
<head>
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
    <title>ImageMagick: MagickWand, C API for ImageMagick: Pixel Wand Methods</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  <meta name="application-name" content="ImageMagick"/>
  <meta name="description" content="ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves."/>
  <meta name="application-url" content="http://www.imagemagick.org"/>
  <meta name="generator" content="PHP"/>
  <meta name="keywords" content="magickwc, api, for, imagemagick:, pixel, wmethods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
  <meta name="rating" content="GENERAL"/>
  <meta name="robots" content="INDEX, FOLLOW"/>
  <meta name="generator" content="ImageMagick Studio LLC"/>
  <meta name="author" content="ImageMagick Studio LLC"/>
  <meta name="revisit-after" content="2 DAYS"/>
  <meta name="resource-type" content="document"/>
  <meta name="copyright" content="Copyright (c) 1999-2015 ImageMagick Studio LLC"/>
  <meta name="distribution" content="Global"/>
  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"/>
  <link rel="stylesheet" href="../css/magick.html"/>
</head>
<body>
<div class="main">
<div class="magick-masthead">
  <div class="container">
    <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
         style="display:block"
         data-ad-client="ca-pub-3129977114552745"
         data-ad-slot="6345125851"
         data-ad-format="auto"></ins>
    <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    <nav class="magick-nav">
      <a class="magick-nav-item " href="../index.html">Home</a>
      <a class="magick-nav-item " href="../binary-releases.html">Download</a>
      <a class="magick-nav-item " href="../command-line-tools.html">Tools</a>
      <a class="magick-nav-item " href="../command-line-processing.html">Command-line</a>
      <a class="magick-nav-item " href="../resources.html">Resources</a>
      <a class="magick-nav-item " href="api.html">Develop</a>
      <a class="magick-nav-item " href="http://nextgen.imagemagick.org/script/search.php">Search</a>
      <a class="magick-nav-item pull-right" href="http://www.imagemagick.org/discourse-server/">Community</a>
    </nav>
  </div>
</div>
<div class="container">
<div class="magick-header">
<p class="text-center"><a href="pixel-wand.html#ClearPixelWand">ClearPixelWand</a> &#8226; <a href="pixel-wand.html#ClonePixelWand">ClonePixelWand</a> &#8226; <a href="pixel-wand.html#ClonePixelWands">ClonePixelWands</a> &#8226; <a href="pixel-wand.html#DestroyPixelWand">DestroyPixelWand</a> &#8226; <a href="pixel-wand.html#DestroyPixelWands">DestroyPixelWands</a> &#8226; <a href="pixel-wand.html#IsPixelWandSimilar">IsPixelWandSimilar</a> &#8226; <a href="pixel-wand.html#IsPixelWand">IsPixelWand</a> &#8226; <a href="pixel-wand.html#NewPixelWand">NewPixelWand</a> &#8226; <a href="pixel-wand.html#NewPixelWands">NewPixelWands</a> &#8226; <a href="pixel-wand.html#PixelClearException">PixelClearException</a> &#8226; <a href="pixel-wand.html#PixelGetAlpha">PixelGetAlpha</a> &#8226; <a href="pixel-wand.html#PixelGetAlphaQuantum">PixelGetAlphaQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetBlack">PixelGetBlack</a> &#8226; <a href="pixel-wand.html#PixelGetBlackQuantum">PixelGetBlackQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetBlue">PixelGetBlue</a> &#8226; <a href="pixel-wand.html#PixelGetBlueQuantum">PixelGetBlueQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetColorAsString">PixelGetColorAsString</a> &#8226; <a href="pixel-wand.html#PixelGetColorAsNormalizedString">PixelGetColorAsNormalizedString</a> &#8226; <a href="pixel-wand.html#PixelGetColorCount">PixelGetColorCount</a> &#8226; <a href="pixel-wand.html#PixelGetCyan">PixelGetCyan</a> &#8226; <a href="pixel-wand.html#PixelGetCyanQuantum">PixelGetCyanQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetException">PixelGetException</a> &#8226; <a href="pixel-wand.html#PixelGetExceptionType">PixelGetExceptionType</a> &#8226; <a href="pixel-wand.html#PixelGetFuzz">PixelGetFuzz</a> &#8226; <a href="pixel-wand.html#PixelGetGreen">PixelGetGreen</a> &#8226; <a href="pixel-wand.html#PixelGetGreenQuantum">PixelGetGreenQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetHSL">PixelGetHSL</a> &#8226; <a href="pixel-wand.html#PixelGetIndex">PixelGetIndex</a> &#8226; <a href="pixel-wand.html#PixelGetMagenta">PixelGetMagenta</a> &#8226; <a href="pixel-wand.html#PixelGetMagentaQuantum">PixelGetMagentaQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetMagickColor">PixelGetMagickColor</a> &#8226; <a href="pixel-wand.html#PixelGetPixel">PixelGetPixel</a> &#8226; <a href="pixel-wand.html#PixelGetQuantumPacket">PixelGetQuantumPacket</a> &#8226; <a href="pixel-wand.html#PixelGetQuantumPixel">PixelGetQuantumPixel</a> &#8226; <a href="pixel-wand.html#PixelGetRed">PixelGetRed</a> &#8226; <a href="pixel-wand.html#PixelGetRedQuantum">PixelGetRedQuantum</a> &#8226; <a href="pixel-wand.html#PixelGetYellow">PixelGetYellow</a> &#8226; <a href="pixel-wand.html#PixelGetYellowQuantum">PixelGetYellowQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetAlpha">PixelSetAlpha</a> &#8226; <a href="pixel-wand.html#PixelSetAlphaQuantum">PixelSetAlphaQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetBlack">PixelSetBlack</a> &#8226; <a href="pixel-wand.html#PixelSetBlackQuantum">PixelSetBlackQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetBlue">PixelSetBlue</a> &#8226; <a href="pixel-wand.html#PixelSetBlueQuantum">PixelSetBlueQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetColor">PixelSetColor</a> &#8226; <a href="pixel-wand.html#PixelSetColorCount">PixelSetColorCount</a> &#8226; <a href="pixel-wand.html#PixelSetColorFromWand">PixelSetColorFromWand</a> &#8226; <a href="pixel-wand.html#PixelSetCyan">PixelSetCyan</a> &#8226; <a href="pixel-wand.html#PixelSetCyanQuantum">PixelSetCyanQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetFuzz">PixelSetFuzz</a> &#8226; <a href="pixel-wand.html#PixelSetGreen">PixelSetGreen</a> &#8226; <a href="pixel-wand.html#PixelSetGreenQuantum">PixelSetGreenQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetHSL">PixelSetHSL</a> &#8226; <a href="pixel-wand.html#PixelSetIndex">PixelSetIndex</a> &#8226; <a href="pixel-wand.html#PixelSetMagenta">PixelSetMagenta</a> &#8226; <a href="pixel-wand.html#PixelSetMagentaQuantum">PixelSetMagentaQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetPixelColor">PixelSetPixelColor</a> &#8226; <a href="pixel-wand.html#PixelSetQuantumPixel">PixelSetQuantumPixel</a> &#8226; <a href="pixel-wand.html#PixelSetRed">PixelSetRed</a> &#8226; <a href="pixel-wand.html#PixelSetRedQuantum">PixelSetRedQuantum</a> &#8226; <a href="pixel-wand.html#PixelSetYellow">PixelSetYellow</a> &#8226; <a href="pixel-wand.html#PixelSetYellowQuantum">PixelSetYellowQuantum</a></p>

<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="ClearPixelWand">ClearPixelWand</a></h2>

<p>ClearPixelWand() clears resources associated with the wand.</p>

<p>The format of the ClearPixelWand method is:</p>

<pre class="text">
void ClearPixelWand(PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="ClonePixelWand">ClonePixelWand</a></h2>

<p>ClonePixelWand() makes an exact copy of the specified wand.</p>

<p>The format of the ClonePixelWand method is:</p>

<pre class="text">
PixelWand *ClonePixelWand(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the magick wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="ClonePixelWands">ClonePixelWands</a></h2>

<p>ClonePixelWands() makes an exact copy of the specified wands.</p>

<p>The format of the ClonePixelWands method is:</p>

<pre class="text">
PixelWand **ClonePixelWands(const PixelWand **wands,
  const size_t number_wands)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wands</dt>
<dd>the magick wands. </dd>

<dd> </dd>
<dt>number_wands</dt>
<dd>the number of wands. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="DestroyPixelWand">DestroyPixelWand</a></h2>

<p>DestroyPixelWand() deallocates resources associated with a PixelWand.</p>

<p>The format of the DestroyPixelWand method is:</p>

<pre class="text">
PixelWand *DestroyPixelWand(PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="DestroyPixelWands">DestroyPixelWands</a></h2>

<p>DestroyPixelWands() deallocates resources associated with an array of pixel wands.</p>

<p>The format of the DestroyPixelWands method is:</p>

<pre class="text">
PixelWand **DestroyPixelWands(PixelWand **wand,
  const size_t number_wands)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>number_wands</dt>
<dd>the number of wands. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="IsPixelWandSimilar">IsPixelWandSimilar</a></h2>

<p>IsPixelWandSimilar() returns MagickTrue if the distance between two colors is less than the specified distance.</p>

<p>The format of the IsPixelWandSimilar method is:</p>

<pre class="text">
MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q,
  const double fuzz)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>p</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>q</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>fuzz</dt>
<dd>any two colors that are less than or equal to this distance squared are consider similar. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="IsPixelWand">IsPixelWand</a></h2>

<p>IsPixelWand() returns MagickTrue if the wand is verified as a pixel wand.</p>

<p>The format of the IsPixelWand method is:</p>

<pre class="text">
MagickBooleanType IsPixelWand(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the magick wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="NewPixelWand">NewPixelWand</a></h2>

<p>NewPixelWand() returns a new pixel wand.</p>

<p>The format of the NewPixelWand method is:</p>

<pre class="text">
PixelWand *NewPixelWand(void)
</pre>

<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="NewPixelWands">NewPixelWands</a></h2>

<p>NewPixelWands() returns an array of pixel wands.</p>

<p>The format of the NewPixelWands method is:</p>

<pre class="text">
PixelWand **NewPixelWands(const size_t number_wands)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>number_wands</dt>
<dd>the number of wands. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelClearException">PixelClearException</a></h2>

<p>PixelClearException() clear any exceptions associated with the iterator.</p>

<p>The format of the PixelClearException method is:</p>

<pre class="text">
MagickBooleanType PixelClearException(PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetAlpha">PixelGetAlpha</a></h2>

<p>PixelGetAlpha() returns the normalized alpha value of the pixel wand.</p>

<p>The format of the PixelGetAlpha method is:</p>

<pre class="text">
double PixelGetAlpha(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetAlphaQuantum">PixelGetAlphaQuantum</a></h2>

<p>PixelGetAlphaQuantum() returns the alpha value of the pixel wand.</p>

<p>The format of the PixelGetAlphaQuantum method is:</p>

<pre class="text">
Quantum PixelGetAlphaQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetBlack">PixelGetBlack</a></h2>

<p>PixelGetBlack() returns the normalized black color of the pixel wand.</p>

<p>The format of the PixelGetBlack method is:</p>

<pre class="text">
double PixelGetBlack(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetBlackQuantum">PixelGetBlackQuantum</a></h2>

<p>PixelGetBlackQuantum() returns the black color of the pixel wand.</p>

<p>The format of the PixelGetBlackQuantum method is:</p>

<pre class="text">
Quantum PixelGetBlackQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetBlue">PixelGetBlue</a></h2>

<p>PixelGetBlue() returns the normalized blue color of the pixel wand.</p>

<p>The format of the PixelGetBlue method is:</p>

<pre class="text">
double PixelGetBlue(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetBlueQuantum">PixelGetBlueQuantum</a></h2>

<p>PixelGetBlueQuantum() returns the blue color of the pixel wand.</p>

<p>The format of the PixelGetBlueQuantum method is:</p>

<pre class="text">
Quantum PixelGetBlueQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetColorAsString">PixelGetColorAsString</a></h2>

<p>PixelGetColorAsString() returnsd the color of the pixel wand as a string.</p>

<p>The format of the PixelGetColorAsString method is:</p>

<pre class="text">
char *PixelGetColorAsString(PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetColorAsNormalizedString">PixelGetColorAsNormalizedString</a></h2>

<p>PixelGetColorAsNormalizedString() returns the normalized color of the pixel wand as a string.</p>

<p>The format of the PixelGetColorAsNormalizedString method is:</p>

<pre class="text">
char *PixelGetColorAsNormalizedString(PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetColorCount">PixelGetColorCount</a></h2>

<p>PixelGetColorCount() returns the color count associated with this color.</p>

<p>The format of the PixelGetColorCount method is:</p>

<pre class="text">
size_t PixelGetColorCount(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetCyan">PixelGetCyan</a></h2>

<p>PixelGetCyan() returns the normalized cyan color of the pixel wand.</p>

<p>The format of the PixelGetCyan method is:</p>

<pre class="text">
double PixelGetCyan(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetCyanQuantum">PixelGetCyanQuantum</a></h2>

<p>PixelGetCyanQuantum() returns the cyan color of the pixel wand.</p>

<p>The format of the PixelGetCyanQuantum method is:</p>

<pre class="text">
Quantum PixelGetCyanQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetException">PixelGetException</a></h2>

<p>PixelGetException() returns the severity, reason, and description of any error that occurs when using other methods in this API.</p>

<p>The format of the PixelGetException method is:</p>

<pre class="text">
char *PixelGetException(const PixelWand *wand,ExceptionType *severity)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>severity</dt>
<dd>the severity of the error is returned here. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetExceptionType">PixelGetExceptionType</a></h2>

<p>PixelGetExceptionType() the exception type associated with the wand.  If no exception has occurred, UndefinedExceptionType is returned.</p>

<p>The format of the PixelGetExceptionType method is:</p>

<pre class="text">
ExceptionType PixelGetExceptionType(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the magick wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetFuzz">PixelGetFuzz</a></h2>

<p>PixelGetFuzz() returns the normalized fuzz value of the pixel wand.</p>

<p>The format of the PixelGetFuzz method is:</p>

<pre class="text">
double PixelGetFuzz(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetGreen">PixelGetGreen</a></h2>

<p>PixelGetGreen() returns the normalized green color of the pixel wand.</p>

<p>The format of the PixelGetGreen method is:</p>

<pre class="text">
double PixelGetGreen(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetGreenQuantum">PixelGetGreenQuantum</a></h2>

<p>PixelGetGreenQuantum() returns the green color of the pixel wand.</p>

<p>The format of the PixelGetGreenQuantum method is:</p>

<pre class="text">
Quantum PixelGetGreenQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetHSL">PixelGetHSL</a></h2>

<p>PixelGetHSL() returns the normalized HSL color of the pixel wand.</p>

<p>The format of the PixelGetHSL method is:</p>

<pre class="text">
void PixelGetHSL(const PixelWand *wand,double *hue,double *saturation,
  double *lightness)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>hue,saturation,lightness</dt>
<dd>Return the pixel hue, saturation, and brightness. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetIndex">PixelGetIndex</a></h2>

<p>PixelGetIndex() returns the colormap index from the pixel wand.</p>

<p>The format of the PixelGetIndex method is:</p>

<pre class="text">
Quantum PixelGetIndex(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetMagenta">PixelGetMagenta</a></h2>

<p>PixelGetMagenta() returns the normalized magenta color of the pixel wand.</p>

<p>The format of the PixelGetMagenta method is:</p>

<pre class="text">
double PixelGetMagenta(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetMagentaQuantum">PixelGetMagentaQuantum</a></h2>

<p>PixelGetMagentaQuantum() returns the magenta color of the pixel wand.</p>

<p>The format of the PixelGetMagentaQuantum method is:</p>

<pre class="text">
Quantum PixelGetMagentaQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetMagickColor">PixelGetMagickColor</a></h2>

<p>PixelGetMagickColor() gets the magick color of the pixel wand.</p>

<p>The format of the PixelGetMagickColor method is:</p>

<pre class="text">
void PixelGetMagickColor(PixelWand *wand,PixelInfo *color)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>color</dt>
<dd> The pixel wand color is returned here. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetPixel">PixelGetPixel</a></h2>

<p>PixelGetPixel() returns the pixel wand pixel.</p>

<p>The format of the PixelGetPixel method is:</p>

<pre class="text">
PixelInfo PixelGetPixel(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetQuantumPacket">PixelGetQuantumPacket</a></h2>

<p>PixelGetQuantumPacket() gets the packet of the pixel wand as a PixelInfo.</p>

<p>The format of the PixelGetQuantumPacket method is:</p>

<pre class="text">
void PixelGetQuantumPacket(PixelWand *wand,PixelInfo *packet)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>packet</dt>
<dd> The pixel wand packet is returned here. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetQuantumPixel">PixelGetQuantumPixel</a></h2>

<p>PixelGetQuantumPixel() gets the pixel of the pixel wand as a PixelInfo.</p>

<p>The format of the PixelGetQuantumPixel method is:</p>

<pre class="text">
void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
  Quantum *pixel)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>pixel</dt>
<dd> The pixel wand pixel is returned here. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetRed">PixelGetRed</a></h2>

<p>PixelGetRed() returns the normalized red color of the pixel wand.</p>

<p>The format of the PixelGetRed method is:</p>

<pre class="text">
double PixelGetRed(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetRedQuantum">PixelGetRedQuantum</a></h2>

<p>PixelGetRedQuantum() returns the red color of the pixel wand.</p>

<p>The format of the PixelGetRedQuantum method is:</p>

<pre class="text">
Quantum PixelGetRedQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetYellow">PixelGetYellow</a></h2>

<p>PixelGetYellow() returns the normalized yellow color of the pixel wand.</p>

<p>The format of the PixelGetYellow method is:</p>

<pre class="text">
double PixelGetYellow(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelGetYellowQuantum">PixelGetYellowQuantum</a></h2>

<p>PixelGetYellowQuantum() returns the yellow color of the pixel wand.</p>

<p>The format of the PixelGetYellowQuantum method is:</p>

<pre class="text">
Quantum PixelGetYellowQuantum(const PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetAlpha">PixelSetAlpha</a></h2>

<p>PixelSetAlpha() sets the normalized alpha value of the pixel wand.</p>

<p>The format of the PixelSetAlpha method is:</p>

<pre class="text">
void PixelSetAlpha(PixelWand *wand,const double alpha)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>alpha</dt>
<dd>the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetAlphaQuantum">PixelSetAlphaQuantum</a></h2>

<p>PixelSetAlphaQuantum() sets the alpha value of the pixel wand.</p>

<p>The format of the PixelSetAlphaQuantum method is:</p>

<pre class="text">
void PixelSetAlphaQuantum(PixelWand *wand,const Quantum alpha)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>alpha</dt>
<dd>the alpha value. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetBlack">PixelSetBlack</a></h2>

<p>PixelSetBlack() sets the normalized black color of the pixel wand.</p>

<p>The format of the PixelSetBlack method is:</p>

<pre class="text">
void PixelSetBlack(PixelWand *wand,const double black)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>black</dt>
<dd>the black color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetBlackQuantum">PixelSetBlackQuantum</a></h2>

<p>PixelSetBlackQuantum() sets the black color of the pixel wand.</p>

<p>The format of the PixelSetBlackQuantum method is:</p>

<pre class="text">
void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>black</dt>
<dd>the black color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetBlue">PixelSetBlue</a></h2>

<p>PixelSetBlue() sets the normalized blue color of the pixel wand.</p>

<p>The format of the PixelSetBlue method is:</p>

<pre class="text">
void PixelSetBlue(PixelWand *wand,const double blue)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>blue</dt>
<dd>the blue color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetBlueQuantum">PixelSetBlueQuantum</a></h2>

<p>PixelSetBlueQuantum() sets the blue color of the pixel wand.</p>

<p>The format of the PixelSetBlueQuantum method is:</p>

<pre class="text">
void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>blue</dt>
<dd>the blue color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetColor">PixelSetColor</a></h2>

<p>PixelSetColor() sets the color of the pixel wand with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).</p>

<p>The format of the PixelSetColor method is:</p>

<pre class="text">
MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>color</dt>
<dd>the pixel wand color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetColorCount">PixelSetColorCount</a></h2>

<p>PixelSetColorCount() sets the color count of the pixel wand.</p>

<p>The format of the PixelSetColorCount method is:</p>

<pre class="text">
void PixelSetColorCount(PixelWand *wand,const size_t count)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>count</dt>
<dd>the number of this particular color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetColorFromWand">PixelSetColorFromWand</a></h2>

<p>PixelSetColorFromWand() sets the color of the pixel wand.</p>

<p>The format of the PixelSetColorFromWand method is:</p>

<pre class="text">
void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>color</dt>
<dd>set the pixel wand color here. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetCyan">PixelSetCyan</a></h2>

<p>PixelSetCyan() sets the normalized cyan color of the pixel wand.</p>

<p>The format of the PixelSetCyan method is:</p>

<pre class="text">
void PixelSetCyan(PixelWand *wand,const double cyan)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>cyan</dt>
<dd>the cyan color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetCyanQuantum">PixelSetCyanQuantum</a></h2>

<p>PixelSetCyanQuantum() sets the cyan color of the pixel wand.</p>

<p>The format of the PixelSetCyanQuantum method is:</p>

<pre class="text">
void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>cyan</dt>
<dd>the cyan color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetFuzz">PixelSetFuzz</a></h2>

<p>PixelSetFuzz() sets the fuzz value of the pixel wand.</p>

<p>The format of the PixelSetFuzz method is:</p>

<pre class="text">
void PixelSetFuzz(PixelWand *wand,const double fuzz)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>fuzz</dt>
<dd>the fuzz value. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetGreen">PixelSetGreen</a></h2>

<p>PixelSetGreen() sets the normalized green color of the pixel wand.</p>

<p>The format of the PixelSetGreen method is:</p>

<pre class="text">
void PixelSetGreen(PixelWand *wand,const double green)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>green</dt>
<dd>the green color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetGreenQuantum">PixelSetGreenQuantum</a></h2>

<p>PixelSetGreenQuantum() sets the green color of the pixel wand.</p>

<p>The format of the PixelSetGreenQuantum method is:</p>

<pre class="text">
void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>green</dt>
<dd>the green color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetHSL">PixelSetHSL</a></h2>

<p>PixelSetHSL() sets the normalized HSL color of the pixel wand.</p>

<p>The format of the PixelSetHSL method is:</p>

<pre class="text">
void PixelSetHSL(PixelWand *wand,const double hue,
  const double saturation,const double lightness)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>hue,saturation,lightness</dt>
<dd>Return the pixel hue, saturation, and brightness. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetIndex">PixelSetIndex</a></h2>

<p>PixelSetIndex() sets the colormap index of the pixel wand.</p>

<p>The format of the PixelSetIndex method is:</p>

<pre class="text">
void PixelSetIndex(PixelWand *wand,const Quantum index)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>index</dt>
<dd>the colormap index. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetMagenta">PixelSetMagenta</a></h2>

<p>PixelSetMagenta() sets the normalized magenta color of the pixel wand.</p>

<p>The format of the PixelSetMagenta method is:</p>

<pre class="text">
void PixelSetMagenta(PixelWand *wand,const double magenta)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>magenta</dt>
<dd>the magenta color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetMagentaQuantum">PixelSetMagentaQuantum</a></h2>

<p>PixelSetMagentaQuantum() sets the magenta color of the pixel wand.</p>

<p>The format of the PixelSetMagentaQuantum method is:</p>

<pre class="text">
void PixelSetMagentaQuantum(PixelWand *wand,
  const Quantum magenta)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>magenta</dt>
<dd>the green magenta. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetPixelColor">PixelSetPixelColor</a></h2>

<p>PixelSetPixelColor() sets the color of the pixel wand.</p>

<p>The format of the PixelSetPixelColor method is:</p>

<pre class="text">
void PixelSetPixelColor(PixelWand *wand,const PixelInfo *color)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>color</dt>
<dd>the pixel wand color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetQuantumPixel">PixelSetQuantumPixel</a></h2>

<p>PixelSetQuantumPixel() sets the pixel of the pixel wand.</p>

<p>The format of the PixelSetQuantumPixel method is:</p>

<pre class="text">
void PixelSetQuantumPixel(const Image *image,const Quantum *pixel,
  PixelWand *wand)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>pixel</dt>
<dd>the pixel wand pixel. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetRed">PixelSetRed</a></h2>

<p>PixelSetRed() sets the normalized red color of the pixel wand.</p>

<p>The format of the PixelSetRed method is:</p>

<pre class="text">
void PixelSetRed(PixelWand *wand,const double red)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>red</dt>
<dd>the red color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetRedQuantum">PixelSetRedQuantum</a></h2>

<p>PixelSetRedQuantum() sets the red color of the pixel wand.</p>

<p>The format of the PixelSetRedQuantum method is:</p>

<pre class="text">
void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>red</dt>
<dd>the red color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetYellow">PixelSetYellow</a></h2>

<p>PixelSetYellow() sets the normalized yellow color of the pixel wand.</p>

<p>The format of the PixelSetYellow method is:</p>

<pre class="text">
void PixelSetYellow(PixelWand *wand,const double yellow)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>yellow</dt>
<dd>the yellow color. </dd>

<dd>  </dd>
</dl>
<h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-wand_8c.html" id="PixelSetYellowQuantum">PixelSetYellowQuantum</a></h2>

<p>PixelSetYellowQuantum() sets the yellow color of the pixel wand.</p>

<p>The format of the PixelSetYellowQuantum method is:</p>

<pre class="text">
void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
</pre>

<p>A description of each parameter follows:</p>

<dd>
</dd>

<dd> </dd>
<dl class="dl-horizontal">
<dt>wand</dt>
<dd>the pixel wand. </dd>

<dd> </dd>
<dt>yellow</dt>
<dd>the yellow color. </dd>

<dd>  </dd>
</dl>
</div>
  <footer class="magick-footer">
    <p><a href="../support.html">Donate</a> •
     <a href="../sitemap.html">Sitemap</a> •
    <a href="../links.html">Related</a> •
    <a href="../architecture.html">Architecture</a>
</p>
    <p><a href="pixel-wand.html#">Back to top</a> •
    <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
    <a href="http://nextgen.imagemagick.org/script/contact.php">Contact Us</a></p>
        <p><small>©  1999-2015 ImageMagick Studio LLC</small></p>
  </footer>
</div><!-- /.container -->

  <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://nextgen.imagemagick.org/js/magick.html"></script>
</div>
</body>
</html>
