Home | History | Annotate | Download | only in api
      1 
      2 
      3 
      4 
      5 <!DOCTYPE html>
      6 <html lang="en">
      7 <head>
      8   <meta charset="utf-8"  />
      9   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
     10   <title>MagickCore, C API: Add a Special Effect @ ImageMagick</title>
     11   <meta name="application-name" content="ImageMagick" />
     12   <meta name="description" content="Use ImageMagick to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
     13   <meta name="application-url" content="https://imagemagick.org" />
     14   <meta name="generator" content="PHP" />
     15   <meta name="keywords" content="magickcore, c, api:, add, a, special, effect, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
     16   <meta name="rating" content="GENERAL" />
     17   <meta name="robots" content="INDEX, FOLLOW" />
     18   <meta name="generator" content="ImageMagick Studio LLC" />
     19   <meta name="author" content="ImageMagick Studio LLC" />
     20   <meta name="revisit-after" content="2 DAYS" />
     21   <meta name="resource-type" content="document" />
     22   <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
     23   <meta name="distribution" content="Global" />
     24   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
     25   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
     26   <link href="fx.html" rel="canonical" />
     27   <link href="../../images/wand.png" rel="icon" />
     28   <link href="../../images/wand.ico" rel="shortcut icon" />
     29   <link href="../assets/magick.css" rel="stylesheet" />
     30 </head>
     31 <body>
     32   <header>
     33   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     34     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     35     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
     36       <span class="navbar-toggler-icon"></span>
     37     </button>
     38 
     39     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     40     <ul class="navbar-nav mr-auto">
     41       <li class="nav-item ">
     42         <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
     43       </li>
     44       <li class="nav-item ">
     45         <a class="nav-link" href="../../www/download.html">Download</a>
     46       </li>
     47       <li class="nav-item ">
     48         <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
     49       </li>
     50       <li class="nav-item ">
     51         <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
     52       </li>
     53       <li class="nav-item ">
     54         <a class="nav-link" href="../../www/resources.html">Resources</a>
     55       </li>
     56       <li class="nav-item ">
     57         <a class="nav-link" href="../../www/develop.html">Develop</a>
     58       </li>
     59       <li class="nav-item">
     60         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
     61       </li>
     62     </ul>
     63     <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
     64       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
     65       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     66     </form>
     67     </div>
     68   </nav>
     69   <div class="container">
     70    <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
     71          style="display:block"
     72          data-ad-client="ca-pub-3129977114552745"
     73          data-ad-slot="6345125851"
     74          data-ad-format="auto"></ins>
     75     <script>
     76       (adsbygoogle = window.adsbygoogle || []).push({});
     77     </script>
     78 
     79   </div>
     80   </header>
     81   <main class="container">
     82     <div class="magick-template">
     83 <div class="magick-header">
     84 <p class="text-center"><a href="fx.html#AddNoiseImage">AddNoiseImage</a> &#8226; <a href="fx.html#BlueShiftImage">BlueShiftImage</a> &#8226; <a href="fx.html#CharcoalImage">CharcoalImage</a> &#8226; <a href="fx.html#ColorizeImage">ColorizeImage</a> &#8226; <a href="fx.html#ColorMatrixImage">ColorMatrixImage</a> &#8226; <a href="fx.html#FxImage">FxImage</a> &#8226; <a href="fx.html#ImplodeImage">ImplodeImage</a> &#8226; <a href="fx.html#The MorphImages">The MorphImages</a> &#8226; <a href="fx.html#PlasmaImage">PlasmaImage</a> &#8226; <a href="fx.html#PolaroidImage">PolaroidImage</a> &#8226; <a href="fx.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="fx.html#ShadowImage">ShadowImage</a> &#8226; <a href="fx.html#SketchImage">SketchImage</a> &#8226; <a href="fx.html#SolarizeImage">SolarizeImage</a> &#8226; <a href="fx.html#SteganoImage">SteganoImage</a> &#8226; <a href="fx.html#StereoAnaglyphImage">StereoAnaglyphImage</a> &#8226; <a href="fx.html#SwirlImage">SwirlImage</a> &#8226; <a href="fx.html#TintImage">TintImage</a> &#8226; <a href="fx.html#VignetteImage">VignetteImage</a> &#8226; <a href="fx.html#WaveImage">WaveImage</a> &#8226; <a href="fx.html#WaveletDenoiseImage">WaveletDenoiseImage</a></p>
     85 
     86 <h2><a href="../../api/MagickCore/fx_8c.html" id="AddNoiseImage">AddNoiseImage</a></h2>
     87 
     88 <p>AddNoiseImage() adds random noise to the image.</p>
     89 
     90 <p>The format of the AddNoiseImage method is:</p>
     91 
     92 <pre class="text">
     93 Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
     94   const double attenuate,ExceptionInfo *exception)
     95 </pre>
     96 
     97 <p>A description of each parameter follows:</p>
     98 
     99 <dd>
    100 </dd>
    101 
    102 <dd> </dd>
    103 <dl class="dl-horizontal">
    104 <dt>image</dt>
    105 <dd>the image. </dd>
    106 
    107 <dd> </dd>
    108 <dt>channel</dt>
    109 <dd>the channel type. </dd>
    110 
    111 <dd> </dd>
    112 <dt>noise_type</dt>
    113 <dd> The type of noise: Uniform, Gaussian, Multiplicative, Impulse, Laplacian, or Poisson. </dd>
    114 
    115 <dd> </dd>
    116 <dt>attenuate</dt>
    117 <dd> attenuate the random distribution. </dd>
    118 
    119 <dd> </dd>
    120 <dt>exception</dt>
    121 <dd>return any errors or warnings in this structure. </dd>
    122 
    123 <dd>  </dd>
    124 </dl>
    125 <h2><a href="../../api/MagickCore/fx_8c.html" id="BlueShiftImage">BlueShiftImage</a></h2>
    126 
    127 <p>BlueShiftImage() mutes the colors of the image to simulate a scene at nighttime in the moonlight.</p>
    128 
    129 <p>The format of the BlueShiftImage method is:</p>
    130 
    131 <pre class="text">
    132 Image *BlueShiftImage(const Image *image,const double factor,
    133   ExceptionInfo *exception)
    134 </pre>
    135 
    136 <p>A description of each parameter follows:</p>
    137 
    138 <dd>
    139 </dd>
    140 
    141 <dd> </dd>
    142 <dl class="dl-horizontal">
    143 <dt>image</dt>
    144 <dd>the image. </dd>
    145 
    146 <dd> </dd>
    147 <dt>factor</dt>
    148 <dd>the shift factor. </dd>
    149 
    150 <dd> </dd>
    151 <dt>exception</dt>
    152 <dd>return any errors or warnings in this structure. </dd>
    153 
    154 <dd>  </dd>
    155 </dl>
    156 <h2><a href="../../api/MagickCore/fx_8c.html" id="CharcoalImage">CharcoalImage</a></h2>
    157 
    158 <p>CharcoalImage() creates a new image that is a copy of an existing one with the edge highlighted.  It allocates the memory necessary for the new Image structure and returns a pointer to the new image.</p>
    159 
    160 <p>The format of the CharcoalImage method is:</p>
    161 
    162 <pre class="text">
    163 Image *CharcoalImage(const Image *image,const double radius,
    164   const double sigma,ExceptionInfo *exception)
    165 </pre>
    166 
    167 <p>A description of each parameter follows:</p>
    168 
    169 <dd>
    170 </dd>
    171 
    172 <dd> </dd>
    173 <dl class="dl-horizontal">
    174 <dt>image</dt>
    175 <dd>the image. </dd>
    176 
    177 <dd> </dd>
    178 <dt>radius</dt>
    179 <dd>the radius of the pixel neighborhood. </dd>
    180 
    181 <dd> </dd>
    182 <dt>sigma</dt>
    183 <dd>the standard deviation of the Gaussian, in pixels. </dd>
    184 
    185 <dd> </dd>
    186 <dt>exception</dt>
    187 <dd>return any errors or warnings in this structure. </dd>
    188 
    189 <dd>  </dd>
    190 </dl>
    191 <h2><a href="../../api/MagickCore/fx_8c.html" id="ColorizeImage">ColorizeImage</a></h2>
    192 
    193 <p>ColorizeImage() blends the fill color with each pixel in the image. A percentage blend is specified with opacity.  Control the application of different color components by specifying a different percentage for each component (e.g. 90/100/10 is 90 red, 100 green, and 10 blue).</p>
    194 
    195 <p>The format of the ColorizeImage method is:</p>
    196 
    197 <pre class="text">
    198 Image *ColorizeImage(const Image *image,const char *blend,
    199   const PixelInfo *colorize,ExceptionInfo *exception)
    200 </pre>
    201 
    202 <p>A description of each parameter follows:</p>
    203 
    204 <dd>
    205 </dd>
    206 
    207 <dd> </dd>
    208 <dl class="dl-horizontal">
    209 <dt>image</dt>
    210 <dd>the image. </dd>
    211 
    212 <dd> </dd>
    213 <dt>blend</dt>
    214 <dd> A character string indicating the level of blending as a percentage. </dd>
    215 
    216 <dd> </dd>
    217 <dt>colorize</dt>
    218 <dd>A color value. </dd>
    219 
    220 <dd> </dd>
    221 <dt>exception</dt>
    222 <dd>return any errors or warnings in this structure. </dd>
    223 
    224 <dd>  </dd>
    225 </dl>
    226 <h2><a href="../../api/MagickCore/fx_8c.html" id="ColorMatrixImage">ColorMatrixImage</a></h2>
    227 
    228 <p>ColorMatrixImage() applies color transformation to an image. This method permits saturation changes, hue rotation, luminance to alpha, and various other effects.  Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets).  The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).</p>
    229 
    230 <p>The format of the ColorMatrixImage method is:</p>
    231 
    232 <pre class="text">
    233 Image *ColorMatrixImage(const Image *image,
    234   const KernelInfo *color_matrix,ExceptionInfo *exception)
    235 </pre>
    236 
    237 <p>A description of each parameter follows:</p>
    238 
    239 <dd>
    240 </dd>
    241 
    242 <dd> </dd>
    243 <dl class="dl-horizontal">
    244 <dt>image</dt>
    245 <dd>the image. </dd>
    246 
    247 <dd> </dd>
    248 <dt>color_matrix</dt>
    249 <dd> the color matrix. </dd>
    250 
    251 <dd> </dd>
    252 <dt>exception</dt>
    253 <dd>return any errors or warnings in this structure. </dd>
    254 
    255 <dd>  </dd>
    256 </dl>
    257 <h2><a href="../../api/MagickCore/fx_8c.html" id="FxImage">FxImage</a></h2>
    258 
    259 <p>FxImage() applies a mathematical expression to the specified image.</p>
    260 
    261 <p>The format of the FxImage method is:</p>
    262 
    263 <pre class="text">
    264 Image *FxImage(const Image *image,const char *expression,
    265   ExceptionInfo *exception)
    266 </pre>
    267 
    268 <p>A description of each parameter follows:</p>
    269 
    270 <dd>
    271 </dd>
    272 
    273 <dd> </dd>
    274 <dl class="dl-horizontal">
    275 <dt>image</dt>
    276 <dd>the image. </dd>
    277 
    278 <dd> </dd>
    279 <dt>expression</dt>
    280 <dd>A mathematical expression. </dd>
    281 
    282 <dd> </dd>
    283 <dt>exception</dt>
    284 <dd>return any errors or warnings in this structure. </dd>
    285 
    286 <dd>  </dd>
    287 </dl>
    288 <h2><a href="../../api/MagickCore/fx_8c.html" id="ImplodeImage">ImplodeImage</a></h2>
    289 
    290 <p>ImplodeImage() creates a new image that is a copy of an existing one with the image pixels "implode" by the specified percentage.  It allocates the memory necessary for the new Image structure and returns a pointer to the new image.</p>
    291 
    292 <p>The format of the ImplodeImage method is:</p>
    293 
    294 <pre class="text">
    295 Image *ImplodeImage(const Image *image,const double amount,
    296   const PixelInterpolateMethod method,ExceptionInfo *exception)
    297 </pre>
    298 
    299 <p>A description of each parameter follows:</p>
    300 
    301 <dd>
    302 </dd>
    303 
    304 <dd> </dd>
    305 <dl class="dl-horizontal">
    306 <dt>implode_image</dt>
    307 <dd>Method ImplodeImage returns a pointer to the image after it is implode.  A null image is returned if there is a memory shortage. </dd>
    308 
    309 <dd> </dd>
    310 <dt>image</dt>
    311 <dd>the image. </dd>
    312 
    313 <dd> </dd>
    314 <dt>amount</dt>
    315 <dd> Define the extent of the implosion. </dd>
    316 
    317 <dd> </dd>
    318 <dt>method</dt>
    319 <dd>the pixel interpolation method. </dd>
    320 
    321 <dd> </dd>
    322 <dt>exception</dt>
    323 <dd>return any errors or warnings in this structure. </dd>
    324 
    325 <dd>  </dd>
    326 </dl>
    327 <h2><a href="../../api/MagickCore/fx_8c.html" id="The_MorphImages">The MorphImages</a></h2>
    328 
    329 <p>The MorphImages() method requires a minimum of two images.  The first image is transformed into the second by a number of intervening images as specified by frames.</p>
    330 
    331 <p>The format of the MorphImage method is:</p>
    332 
    333 <pre class="text">
    334 Image *MorphImages(const Image *image,const size_t number_frames,
    335   ExceptionInfo *exception)
    336 </pre>
    337 
    338 <p>A description of each parameter follows:</p>
    339 
    340 <dd>
    341 </dd>
    342 
    343 <dd> </dd>
    344 <dl class="dl-horizontal">
    345 <dt>image</dt>
    346 <dd>the image. </dd>
    347 
    348 <dd> </dd>
    349 <dt>number_frames</dt>
    350 <dd> Define the number of in-between image to generate. The more in-between frames, the smoother the morph. </dd>
    351 
    352 <dd> </dd>
    353 <dt>exception</dt>
    354 <dd>return any errors or warnings in this structure. </dd>
    355 
    356 <dd>  </dd>
    357 </dl>
    358 <h2><a href="../../api/MagickCore/fx_8c.html" id="PlasmaImage">PlasmaImage</a></h2>
    359 
    360 <p>PlasmaImage() initializes an image with plasma fractal values.  The image must be initialized with a base color and the random number generator seeded before this method is called.</p>
    361 
    362 <p>The format of the PlasmaImage method is:</p>
    363 
    364 <pre class="text">
    365 MagickBooleanType PlasmaImage(Image *image,const SegmentInfo *segment,
    366   size_t attenuate,size_t depth,ExceptionInfo *exception)
    367 </pre>
    368 
    369 <p>A description of each parameter follows:</p>
    370 
    371 <dd>
    372 </dd>
    373 
    374 <dd> </dd>
    375 <dl class="dl-horizontal">
    376 <dt>image</dt>
    377 <dd>the image. </dd>
    378 
    379 <dd> </dd>
    380 <dt>segment</dt>
    381 <dd>  Define the region to apply plasma fractals values. </dd>
    382 
    383 <dd> </dd>
    384 <dt>attenuate</dt>
    385 <dd>Define the plasma attenuation factor. </dd>
    386 
    387 <dd> </dd>
    388 <dt>depth</dt>
    389 <dd>Limit the plasma recursion depth. </dd>
    390 
    391 <dd> </dd>
    392 <dt>exception</dt>
    393 <dd>return any errors or warnings in this structure. </dd>
    394 
    395 <dd>  </dd>
    396 </dl>
    397 <h2><a href="../../api/MagickCore/fx_8c.html" id="PolaroidImage">PolaroidImage</a></h2>
    398 
    399 <p>PolaroidImage() simulates a Polaroid picture.</p>
    400 
    401 <p>The format of the PolaroidImage method is:</p>
    402 
    403 <pre class="text">
    404 Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
    405   const char *caption,const double angle,
    406   const PixelInterpolateMethod method,ExceptionInfo exception)
    407 </pre>
    408 
    409 <p>A description of each parameter follows:</p>
    410 
    411 <dd>
    412 </dd>
    413 
    414 <dd> </dd>
    415 <dl class="dl-horizontal">
    416 <dt>image</dt>
    417 <dd>the image. </dd>
    418 
    419 <dd> </dd>
    420 <dt>draw_info</dt>
    421 <dd>the draw info. </dd>
    422 
    423 <dd> </dd>
    424 <dt>caption</dt>
    425 <dd>the Polaroid caption. </dd>
    426 
    427 <dd> </dd>
    428 <dt>angle</dt>
    429 <dd>Apply the effect along this angle. </dd>
    430 
    431 <dd> </dd>
    432 <dt>method</dt>
    433 <dd>the pixel interpolation method. </dd>
    434 
    435 <dd> </dd>
    436 <dt>exception</dt>
    437 <dd>return any errors or warnings in this structure. </dd>
    438 
    439 <dd>  </dd>
    440 </dl>
    441 <h2><a href="../../api/MagickCore/fx_8c.html" id="MagickSepiaToneImage">MagickSepiaToneImage</a></h2>
    442 
    443 <p>MagickSepiaToneImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning.  Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning.  A threshold of 80 is a good starting point for a reasonable tone.</p>
    444 
    445 <p>The format of the SepiaToneImage method is:</p>
    446 
    447 <pre class="text">
    448 Image *SepiaToneImage(const Image *image,const double threshold,
    449   ExceptionInfo *exception)
    450 </pre>
    451 
    452 <p>A description of each parameter follows:</p>
    453 
    454 <dd>
    455 </dd>
    456 
    457 <dd> </dd>
    458 <dl class="dl-horizontal">
    459 <dt>image</dt>
    460 <dd>the image. </dd>
    461 
    462 <dd> </dd>
    463 <dt>threshold</dt>
    464 <dd>the tone threshold. </dd>
    465 
    466 <dd> </dd>
    467 <dt>exception</dt>
    468 <dd>return any errors or warnings in this structure. </dd>
    469 
    470 <dd>  </dd>
    471 </dl>
    472 <h2><a href="../../api/MagickCore/fx_8c.html" id="ShadowImage">ShadowImage</a></h2>
    473 
    474 <p>ShadowImage() simulates a shadow from the specified image and returns it.</p>
    475 
    476 <p>The format of the ShadowImage method is:</p>
    477 
    478 <pre class="text">
    479 Image *ShadowImage(const Image *image,const double alpha,
    480   const double sigma,const ssize_t x_offset,const ssize_t y_offset,
    481   ExceptionInfo *exception)
    482 </pre>
    483 
    484 <p>A description of each parameter follows:</p>
    485 
    486 <dd>
    487 </dd>
    488 
    489 <dd> </dd>
    490 <dl class="dl-horizontal">
    491 <dt>image</dt>
    492 <dd>the image. </dd>
    493 
    494 <dd> </dd>
    495 <dt>alpha</dt>
    496 <dd>percentage transparency. </dd>
    497 
    498 <dd> </dd>
    499 <dt>sigma</dt>
    500 <dd>the standard deviation of the Gaussian, in pixels. </dd>
    501 
    502 <dd> </dd>
    503 <dt>x_offset</dt>
    504 <dd>the shadow x-offset. </dd>
    505 
    506 <dd> </dd>
    507 <dt>y_offset</dt>
    508 <dd>the shadow y-offset. </dd>
    509 
    510 <dd> </dd>
    511 <dt>exception</dt>
    512 <dd>return any errors or warnings in this structure. </dd>
    513 
    514 <dd>  </dd>
    515 </dl>
    516 <h2><a href="../../api/MagickCore/fx_8c.html" id="SketchImage">SketchImage</a></h2>
    517 
    518 <p>SketchImage() simulates a pencil sketch.  We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma).  For reasonable results, radius should be larger than sigma.  Use a radius of 0 and SketchImage() selects a suitable radius for you.  Angle gives the angle of the sketch.</p>
    519 
    520 <p>The format of the SketchImage method is:</p>
    521 
    522 <pre class="text">
    523     Image *SketchImage(const Image *image,const double radius,
    524 const double sigma,const double angle,ExceptionInfo *exception)
    525 </pre>
    526 
    527 <p>A description of each parameter follows:</p>
    528 
    529 <dd>
    530 </dd>
    531 
    532 <dd> </dd>
    533 <dl class="dl-horizontal">
    534 <dt>image</dt>
    535 <dd>the image. </dd>
    536 
    537 <dd> </dd>
    538 <dt>radius</dt>
    539 <dd>the radius of the Gaussian, in pixels, not counting the center pixel. </dd>
    540 
    541 <dd> </dd>
    542 <dt>sigma</dt>
    543 <dd>the standard deviation of the Gaussian, in pixels. </dd>
    544 
    545 <dd> </dd>
    546 <dt>angle</dt>
    547 <dd>apply the effect along this angle. </dd>
    548 
    549 <dd> </dd>
    550 <dt>exception</dt>
    551 <dd>return any errors or warnings in this structure. </dd>
    552 
    553 <dd>  </dd>
    554 </dl>
    555 <h2><a href="../../api/MagickCore/fx_8c.html" id="SolarizeImage">SolarizeImage</a></h2>
    556 
    557 <p>SolarizeImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light.  Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.</p>
    558 
    559 <p>The format of the SolarizeImage method is:</p>
    560 
    561 <pre class="text">
    562 MagickBooleanType SolarizeImage(Image *image,const double threshold,
    563   ExceptionInfo *exception)
    564 </pre>
    565 
    566 <p>A description of each parameter follows:</p>
    567 
    568 <dd>
    569 </dd>
    570 
    571 <dd> </dd>
    572 <dl class="dl-horizontal">
    573 <dt>image</dt>
    574 <dd>the image. </dd>
    575 
    576 <dd> </dd>
    577 <dt>threshold</dt>
    578 <dd> Define the extent of the solarization. </dd>
    579 
    580 <dd> </dd>
    581 <dt>exception</dt>
    582 <dd>return any errors or warnings in this structure. </dd>
    583 
    584 <dd>  </dd>
    585 </dl>
    586 <h2><a href="../../api/MagickCore/fx_8c.html" id="SteganoImage">SteganoImage</a></h2>
    587 
    588 <p>SteganoImage() hides a digital watermark within the image.  Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.</p>
    589 
    590 <p>The format of the SteganoImage method is:</p>
    591 
    592 <pre class="text">
    593 Image *SteganoImage(const Image *image,Image *watermark,
    594   ExceptionInfo *exception)
    595 </pre>
    596 
    597 <p>A description of each parameter follows:</p>
    598 
    599 <dd>
    600 </dd>
    601 
    602 <dd> </dd>
    603 <dl class="dl-horizontal">
    604 <dt>image</dt>
    605 <dd>the image. </dd>
    606 
    607 <dd> </dd>
    608 <dt>watermark</dt>
    609 <dd>the watermark image. </dd>
    610 
    611 <dd> </dd>
    612 <dt>exception</dt>
    613 <dd>return any errors or warnings in this structure. </dd>
    614 
    615 <dd>  </dd>
    616 </dl>
    617 <h2><a href="../../api/MagickCore/fx_8c.html" id="StereoAnaglyphImage">StereoAnaglyphImage</a></h2>
    618 
    619 <p>StereoAnaglyphImage() combines two images and produces a single image that is the composite of a left and right image of a stereo pair.  Special red-green stereo glasses are required to view this effect.</p>
    620 
    621 <p>The format of the StereoAnaglyphImage method is:</p>
    622 
    623 <pre class="text">
    624 Image *StereoImage(const Image *left_image,const Image *right_image,
    625   ExceptionInfo *exception)
    626 Image *StereoAnaglyphImage(const Image *left_image,
    627   const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
    628   ExceptionInfo *exception)
    629 </pre>
    630 
    631 <p>A description of each parameter follows:</p>
    632 
    633 <dd>
    634 </dd>
    635 
    636 <dd> </dd>
    637 <dl class="dl-horizontal">
    638 <dt>left_image</dt>
    639 <dd>the left image. </dd>
    640 
    641 <dd> </dd>
    642 <dt>right_image</dt>
    643 <dd>the right image. </dd>
    644 
    645 <dd> </dd>
    646 <dt>exception</dt>
    647 <dd>return any errors or warnings in this structure. </dd>
    648 
    649 <dd> </dd>
    650 <dt>x_offset</dt>
    651 <dd>amount, in pixels, by which the left image is offset to the right of the right image. </dd>
    652 
    653 <dd> </dd>
    654 <dt>y_offset</dt>
    655 <dd>amount, in pixels, by which the left image is offset to the bottom of the right image. </dd>
    656 
    657 <dd> </dd>
    658 
    659 <dd>  </dd>
    660 </dl>
    661 <h2><a href="../../api/MagickCore/fx_8c.html" id="SwirlImage">SwirlImage</a></h2>
    662 
    663 <p>SwirlImage() swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.</p>
    664 
    665 <p>The format of the SwirlImage method is:</p>
    666 
    667 <pre class="text">
    668 Image *SwirlImage(const Image *image,double degrees,
    669   const PixelInterpolateMethod method,ExceptionInfo *exception)
    670 </pre>
    671 
    672 <p>A description of each parameter follows:</p>
    673 
    674 <dd>
    675 </dd>
    676 
    677 <dd> </dd>
    678 <dl class="dl-horizontal">
    679 <dt>image</dt>
    680 <dd>the image. </dd>
    681 
    682 <dd> </dd>
    683 <dt>degrees</dt>
    684 <dd>Define the tightness of the swirling effect. </dd>
    685 
    686 <dd> </dd>
    687 <dt>method</dt>
    688 <dd>the pixel interpolation method. </dd>
    689 
    690 <dd> </dd>
    691 <dt>exception</dt>
    692 <dd>return any errors or warnings in this structure. </dd>
    693 
    694 <dd>  </dd>
    695 </dl>
    696 <h2><a href="../../api/MagickCore/fx_8c.html" id="TintImage">TintImage</a></h2>
    697 
    698 <p>TintImage() applies a color vector to each pixel in the image.  The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5))))</p>
    699 
    700 <p>The format of the TintImage method is:</p>
    701 
    702 <pre class="text">
    703 Image *TintImage(const Image *image,const char *blend,
    704   const PixelInfo *tint,ExceptionInfo *exception)
    705 </pre>
    706 
    707 <p>A description of each parameter follows:</p>
    708 
    709 <dd>
    710 </dd>
    711 
    712 <dd> </dd>
    713 <dl class="dl-horizontal">
    714 <dt>image</dt>
    715 <dd>the image. </dd>
    716 
    717 <dd> </dd>
    718 <dt>blend</dt>
    719 <dd>A color value used for tinting. </dd>
    720 
    721 <dd> </dd>
    722 <dt>tint</dt>
    723 <dd>A color value used for tinting. </dd>
    724 
    725 <dd> </dd>
    726 <dt>exception</dt>
    727 <dd>return any errors or warnings in this structure. </dd>
    728 
    729 <dd>  </dd>
    730 </dl>
    731 <h2><a href="../../api/MagickCore/fx_8c.html" id="VignetteImage">VignetteImage</a></h2>
    732 
    733 <p>VignetteImage() softens the edges of the image in vignette style.</p>
    734 
    735 <p>The format of the VignetteImage method is:</p>
    736 
    737 <pre class="text">
    738 Image *VignetteImage(const Image *image,const double radius,
    739   const double sigma,const ssize_t x,const ssize_t y,
    740   ExceptionInfo *exception)
    741 </pre>
    742 
    743 <p>A description of each parameter follows:</p>
    744 
    745 <dd>
    746 </dd>
    747 
    748 <dd> </dd>
    749 <dl class="dl-horizontal">
    750 <dt>image</dt>
    751 <dd>the image. </dd>
    752 
    753 <dd> </dd>
    754 <dt>radius</dt>
    755 <dd>the radius of the pixel neighborhood. </dd>
    756 
    757 <dd> </dd>
    758 <dt>sigma</dt>
    759 <dd>the standard deviation of the Gaussian, in pixels. </dd>
    760 
    761 <dd> </dd>
    762 <dt>x, y</dt>
    763 <dd> Define the x and y ellipse offset. </dd>
    764 
    765 <dd> </dd>
    766 <dt>exception</dt>
    767 <dd>return any errors or warnings in this structure. </dd>
    768 
    769 <dd>  </dd>
    770 </dl>
    771 <h2><a href="../../api/MagickCore/fx_8c.html" id="WaveImage">WaveImage</a></h2>
    772 
    773 <p>WaveImage() creates a "ripple" effect in the image by shifting the pixels vertically along a sine wave whose amplitude and wavelength is specified by the given parameters.</p>
    774 
    775 <p>The format of the WaveImage method is:</p>
    776 
    777 <pre class="text">
    778 Image *WaveImage(const Image *image,const double amplitude,
    779   const double wave_length,const PixelInterpolateMethod method,
    780   ExceptionInfo *exception)
    781 </pre>
    782 
    783 <p>A description of each parameter follows:</p>
    784 
    785 <dd>
    786 </dd>
    787 
    788 <dd> </dd>
    789 <dl class="dl-horizontal">
    790 <dt>image</dt>
    791 <dd>the image. </dd>
    792 
    793 <dd> </dd>
    794 <dt>amplitude, wave_length</dt>
    795 <dd> Define the amplitude and wave length of the sine wave. </dd>
    796 
    797 <dd> </dd>
    798 <dt>interpolate</dt>
    799 <dd>the pixel interpolation method. </dd>
    800 
    801 <dd> </dd>
    802 <dt>exception</dt>
    803 <dd>return any errors or warnings in this structure. </dd>
    804 
    805 <dd>  </dd>
    806 </dl>
    807 <h2><a href="../../api/MagickCore/fx_8c.html" id="WaveletDenoiseImage">WaveletDenoiseImage</a></h2>
    808 
    809 <p>WaveletDenoiseImage() removes noise from the image using a wavelet transform.  The wavelet transform is a fast hierarchical scheme for processing an image using a set of consecutive lowpass and high_pass filters, followed by a decimation.  This results in a decomposition into different scales which can be regarded as different frequency bands, determined by the mother wavelet.  Adapted from dcraw.c by David Coffin.</p>
    810 
    811 <p>The format of the WaveletDenoiseImage method is:</p>
    812 
    813 <pre class="text">
    814 Image *WaveletDenoiseImage(const Image *image,const double threshold,
    815   const double softness,ExceptionInfo *exception)
    816 </pre>
    817 
    818 <p>A description of each parameter follows:</p>
    819 
    820 <dd>
    821 </dd>
    822 
    823 <dd> </dd>
    824 <dl class="dl-horizontal">
    825 <dt>image</dt>
    826 <dd>the image. </dd>
    827 
    828 <dd> </dd>
    829 <dt>threshold</dt>
    830 <dd>set the threshold for smoothing. </dd>
    831 
    832 <dd> </dd>
    833 <dt>softness</dt>
    834 <dd>attenuate the smoothing threshold. </dd>
    835 
    836 <dd> </dd>
    837 <dt>exception</dt>
    838 <dd>return any errors or warnings in this structure. </dd>
    839 
    840 <dd>  </dd>
    841 </dl>
    842 </div>
    843     </div>
    844   </main><!-- /.container -->
    845   <footer class="magick-footer">
    846     <p><a href="../../www/security-policy.html">Security</a> 
    847     <a href="../../www/architecture.html">Architecture</a> 
    848     <a href="../../www/links.html">Related</a> 
    849      <a href="../../www/sitemap.html">Sitemap</a>
    850        
    851     <a href="fx.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
    852        
    853     <a href="http://pgp.mit.edu/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> 
    854     <a href="../../www/support.html">Donate</a> 
    855     <a href="../../www/contact.html">Contact Us</a>
    856     <br/>
    857     <small> 1999-2019 ImageMagick Studio LLC</small></p>
    858   </footer>
    859 
    860   <!-- Javascript assets -->
    861   <script src="../assets/magick.js" crossorigin="anonymous"></script>
    862   <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
    863 </body>
    864 </html>
    865 <!-- Magick Cache 31st December 2018 19:56 -->