• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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">
93Image *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">
132Image *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">
163Image *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">
198Image *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">
233Image *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">
264Image *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">
295Image *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">
334Image *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">
365MagickBooleanType 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">
404Image *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">
448Image *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">
479Image *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,
524const 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">
562MagickBooleanType 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">
593Image *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">
624Image *StereoImage(const Image *left_image,const Image *right_image,
625  ExceptionInfo *exception)
626Image *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">
668Image *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">
703Image *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">
738Image *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">
778Image *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">
814Image *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&amp;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 -->