blob: 34eafb77df0b12ea90114a8a949da60f8377931b [file] [log] [blame]
cristy3eaa0ef2010-03-06 20:35:26 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
cristy2c839602010-04-03 02:32:08 +00003<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
cristy3eaa0ef2010-03-06 20:35:26 +00004<head>
cristy3c98a4f2010-08-13 20:09:41 +00005 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
7 <title>ImageMagick: MagickCore, C API for ImageMagick: Add an Effect</title/>
cristy3ed852e2009-09-05 21:47:34 +00008 <meta http-equiv="Content-Language" content="en-US"/>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000011 <meta name="Application-name" content="ImageMagick"/>
12 <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
13 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy3ed852e2009-09-05 21:47:34 +000014 <meta name="Generator" content="PHP"/>
15 <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, add, an, effect, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
cristy3ed852e2009-09-05 21:47:34 +000016 <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"/>
cristy16af1cb2009-12-11 21:38:29 +000022 <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
cristy3ed852e2009-09-05 21:47:34 +000023 <meta name="Distribution" content="Global"/>
cristy3c98a4f2010-08-13 20:09:41 +000024 <link rel="icon" href="../../images/wand.png" sizes="32x32"/>
25 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
26 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
27 <style type="text/css" media="all">
28 @import url("../../www/magick.css");
29 </style>
cristy3eaa0ef2010-03-06 20:35:26 +000030</head>
31
32<body id="www-imagemagick-org">
33<div class="titlebar">
34<a href="../../index.html">
35 <img src="../../images/script.png" alt="[ImageMagick]"
36 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
37<a href="http://www.networkredux.com">
38 <img src="../../images/networkredux.png" alt="[sponsor]"
39 style="margin: 45px auto; border: 0px; float: left;" /></a>
40<a href="http://www.imagemagick.org/discourse-server/">
41 <img src="../../images/logo.jpg" alt=""
42 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
43<a href="../../index.html">
44 <img src="../../images/sprite.jpg" alt=""
45 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
46</div>
47
cristyce69bb02010-07-27 19:49:46 +000048<div class="westbar">
cristy3eaa0ef2010-03-06 20:35:26 +000049
cristy3ed852e2009-09-05 21:47:34 +000050<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000051 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000052</div>
cristy3eaa0ef2010-03-06 20:35:26 +000053<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000054<div class="menu">
cristybb503372010-05-27 20:51:26 +000055 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
56</div>
57<div class="sub">
58 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
59</div>
60<div class="sub">
61 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
62</div>
63<div class="sub">
64 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
65</div>
66<div class="sep"></div>
67<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000068 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +000069</div>
70<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000071 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +000072</div>
73<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000074 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +000075</div>
76<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000077 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +000078</div>
79<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000080 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +000081</div>
82<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000083 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +000084</div>
85<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000086 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +000087</div>
88<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000089 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000090</div>
91<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000092 <a title="Program Interface: Magick++" href="../../Magick++/">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +000093</div>
cristy3eaa0ef2010-03-06 20:35:26 +000094<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000095<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000096 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +000097</div>
98<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000099 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000100</div>
101<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000102 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000103 </div>
104<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000105 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000106</div>
cristybb503372010-05-27 20:51:26 +0000107<div class="menu">
108 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
109</div>
cristy3ed852e2009-09-05 21:47:34 +0000110<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000111 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000112</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000113<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000114<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000115 <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
cristy3ed852e2009-09-05 21:47:34 +0000116</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000117<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000118<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000119 <a title="Site Map"href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000120</div>
121<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000122 <a title="Site Map: Links"href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000123</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000124<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000125<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000126 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000127
128<div class="sponsbox">
129<div class="sponsor">
cristy24ce5cb2010-09-30 01:46:41 +0000130 <a title="Sponsor: Online-Magazin" href="http://www.unkostenbeitrag.de/">Online-Magazin</a><!-- 20101101000200 -->
cristy73fd1cd2010-09-12 19:14:25 +0000131</div>
132<div class="sponsor">
cristy7d52cd62010-10-01 17:26:59 +0000133 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
134</div>
135<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000136 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
137</div>
138<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000139 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
140</div>
141<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000142 <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
cristy9b5852d2010-03-08 18:18:01 +0000143</div>
144<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000145 <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
cristy8f900122010-03-05 15:26:31 +0000146</div>
147<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000148 <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
cristy916e1922009-10-01 12:52:47 +0000149</div>
150<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000151 <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
cristyc49f7992009-09-22 22:48:40 +0000152</div>
cristy3ed852e2009-09-05 21:47:34 +0000153</div>
154</div>
cristyce69bb02010-07-27 19:49:46 +0000155</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000156
cristyce69bb02010-07-27 19:49:46 +0000157<div class="eastbar">
158 <script type="text/javascript">
159 <!--
160 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000161 google_ad_slot = "0574824969";
162 google_ad_width = 160;
163 google_ad_height = 600;
164 //-->
165 </script>
166 <script type="text/javascript"
167 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
168 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000169</div>
170
171<div class="main">
172
cristy16ff93c2010-01-13 23:18:07 +0000173<p class="navigation-index">[<a href="#AdaptiveBlurImage">AdaptiveBlurImage</a> &bull; <a href="#AdaptiveSharpenImage">AdaptiveSharpenImage</a> &bull; <a href="#BlurImage">BlurImage</a> &bull; <a href="#ConvolveImage">ConvolveImage</a> &bull; <a href="#DespeckleImage">DespeckleImage</a> &bull; <a href="#EdgeImage">EdgeImage</a> &bull; <a href="#EmbossImage">EmbossImage</a> &bull; <a href="#FilterImage">FilterImage</a> &bull; <a href="#GaussianBlurImage">GaussianBlurImage</a> &bull; <a href="#MedianFilterImage">MedianFilterImage</a> &bull; <a href="#MotionBlurImage">MotionBlurImage</a> &bull; <a href="#PreviewImage">PreviewImage</a> &bull; <a href="#RadialBlurImage">RadialBlurImage</a> &bull; <a href="#ReduceNoiseImage">ReduceNoiseImage</a> &bull; <a href="#SelectiveBlurImage">SelectiveBlurImage</a> &bull; <a href="#ShadeImage">ShadeImage</a> &bull; <a href="#SharpenImage">SharpenImage</a> &bull; <a href="#SpreadImage">SpreadImage</a> &bull; <a href="#UnsharpMaskImage">UnsharpMaskImage</a>]</p>
cristy3ed852e2009-09-05 21:47:34 +0000174
175<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
176_8c.html" target="source" name="AdaptiveBlurImage">AdaptiveBlurImage</a></h2>
177<div class="doc-section">
178
179<p>AdaptiveBlurImage() adaptively blurs the image by blurring less intensely near image edges and more intensely far from edges. We blur 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 AdaptiveBlurImage() selects a suitable radius for you.</p></ol>
180
181<p>The format of the AdaptiveBlurImage method is:</p>
182
183<pre class="code">
184 Image *AdaptiveBlurImage(const Image *image,const double radius,
185 const double sigma,ExceptionInfo *exception)
186 Image *AdaptiveBlurImageChannel(const Image *image,
187 const ChannelType channel,double radius,const double sigma,
188 ExceptionInfo *exception)
189</pre>
190
191<p>A description of each parameter follows:</p></ol>
192
193<h5>image</h5>
194<ol><p>the image.</p></ol>
195
196<h5>channel</h5>
197<ol><p>the channel type.</p></ol>
198
199<h5>radius</h5>
200<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
201
202<h5>sigma</h5>
203<ol><p>the standard deviation of the Laplacian, in pixels.</p></ol>
204
205<h5>exception</h5>
206<ol><p>return any errors or warnings in this structure.</p></ol>
207
208 </div>
209<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
210_8c.html" target="source" name="AdaptiveSharpenImage">AdaptiveSharpenImage</a></h2>
211<div class="doc-section">
212
213<p>AdaptiveSharpenImage() adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. We sharpen 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 AdaptiveSharpenImage() selects a suitable radius for you.</p></ol>
214
215<p>The format of the AdaptiveSharpenImage method is:</p>
216
217<pre class="code">
218 Image *AdaptiveSharpenImage(const Image *image,const double radius,
219 const double sigma,ExceptionInfo *exception)
220 Image *AdaptiveSharpenImageChannel(const Image *image,
221 const ChannelType channel,double radius,const double sigma,
222 ExceptionInfo *exception)
223</pre>
224
225<p>A description of each parameter follows:</p></ol>
226
227<h5>image</h5>
228<ol><p>the image.</p></ol>
229
230<h5>channel</h5>
231<ol><p>the channel type.</p></ol>
232
233<h5>radius</h5>
234<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
235
236<h5>sigma</h5>
237<ol><p>the standard deviation of the Laplacian, in pixels.</p></ol>
238
239<h5>exception</h5>
240<ol><p>return any errors or warnings in this structure.</p></ol>
241
242 </div>
243<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
244_8c.html" target="source" name="BlurImage">BlurImage</a></h2>
245<div class="doc-section">
246
247<p>BlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and BlurImage() selects a suitable radius for you.</p></ol>
248
249<p>BlurImage() differs from GaussianBlurImage() in that it uses a separable kernel which is faster but mathematically equivalent to the non-separable kernel.</p></ol>
250
251<p>The format of the BlurImage method is:</p>
252
253<pre class="code">
254 Image *BlurImage(const Image *image,const double radius,
255 const double sigma,ExceptionInfo *exception)
256 Image *BlurImageChannel(const Image *image,const ChannelType channel,
257 const double radius,const double sigma,ExceptionInfo *exception)
258</pre>
259
260<p>A description of each parameter follows:</p></ol>
261
262<h5>image</h5>
263<ol><p>the image.</p></ol>
264
265<h5>channel</h5>
266<ol><p>the channel type.</p></ol>
267
268<h5>radius</h5>
269<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
270
271<h5>sigma</h5>
272<ol><p>the standard deviation of the Gaussian, in pixels.</p></ol>
273
274<h5>exception</h5>
275<ol><p>return any errors or warnings in this structure.</p></ol>
276
277 </div>
278<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
cristy6b636652009-12-05 17:16:11 +0000279_8c.html" target="source" name="ConvolveImage">ConvolveImage</a></h2>
280<div class="doc-section">
281
282<p>ConvolveImage() applies a custom convolution kernel to the image.</p></ol>
283
284<p>The format of the ConvolveImage method is:</p>
285
286<pre class="code">
cristybb503372010-05-27 20:51:26 +0000287 Image *ConvolveImage(const Image *image,const size_t order,
cristy6b636652009-12-05 17:16:11 +0000288 const double *kernel,ExceptionInfo *exception)
289 Image *ConvolveImageChannel(const Image *image,const ChannelType channel,
cristybc9539a2010-08-16 18:06:20 +0000290 const size_t order,const double *kernel,ExceptionInfo *exception)
cristy6b636652009-12-05 17:16:11 +0000291</pre>
292
293<p>A description of each parameter follows:</p></ol>
294
295<h5>image</h5>
296<ol><p>the image.</p></ol>
297
298<h5>channel</h5>
299<ol><p>the channel type.</p></ol>
300
301<h5>order</h5>
302<ol><p>the number of columns and rows in the filter kernel.</p></ol>
303
304<h5>kernel</h5>
305<ol><p>An array of double representing the convolution kernel.</p></ol>
306
307<h5>exception</h5>
308<ol><p>return any errors or warnings in this structure.</p></ol>
309
310 </div>
311<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
cristy3ed852e2009-09-05 21:47:34 +0000312_8c.html" target="source" name="DespeckleImage">DespeckleImage</a></h2>
313<div class="doc-section">
314
315<p>DespeckleImage() reduces the speckle noise in an image while perserving the edges of the original image.</p></ol>
316
317<p>The format of the DespeckleImage method is:</p>
318
319<pre class="code">
320 Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
321</pre>
322
323<p>A description of each parameter follows:</p></ol>
324
325<h5>image</h5>
326<ol><p>the image.</p></ol>
327
328<h5>exception</h5>
329<ol><p>return any errors or warnings in this structure.</p></ol>
330
331 </div>
332<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
333_8c.html" target="source" name="EdgeImage">EdgeImage</a></h2>
334<div class="doc-section">
335
336<p>EdgeImage() finds edges in an image. Radius defines the radius of the convolution filter. Use a radius of 0 and EdgeImage() selects a suitable radius for you.</p></ol>
337
338<p>The format of the EdgeImage method is:</p>
339
340<pre class="code">
341 Image *EdgeImage(const Image *image,const double radius,
342 ExceptionInfo *exception)
343</pre>
344
345<p>A description of each parameter follows:</p></ol>
346
347<h5>image</h5>
348<ol><p>the image.</p></ol>
349
350<h5>radius</h5>
351<ol><p>the radius of the pixel neighborhood.</p></ol>
352
353<h5>exception</h5>
354<ol><p>return any errors or warnings in this structure.</p></ol>
355
356 </div>
357<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
358_8c.html" target="source" name="EmbossImage">EmbossImage</a></h2>
359<div class="doc-section">
360
361<p>EmbossImage() returns a grayscale image with a three-dimensional effect. 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 Emboss() selects a suitable radius for you.</p></ol>
362
363<p>The format of the EmbossImage method is:</p>
364
365<pre class="code">
366 Image *EmbossImage(const Image *image,const double radius,
367 const double sigma,ExceptionInfo *exception)
368</pre>
369
370<p>A description of each parameter follows:</p></ol>
371
372<h5>image</h5>
373<ol><p>the image.</p></ol>
374
375<h5>radius</h5>
376<ol><p>the radius of the pixel neighborhood.</p></ol>
377
378<h5>sigma</h5>
379<ol><p>the standard deviation of the Gaussian, in pixels.</p></ol>
380
381<h5>exception</h5>
382<ol><p>return any errors or warnings in this structure.</p></ol>
383
384 </div>
385<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
cristy16ff93c2010-01-13 23:18:07 +0000386_8c.html" target="source" name="FilterImage">FilterImage</a></h2>
387<div class="doc-section">
388
389<p>FilterImage() applies a custom convolution kernel to the image.</p></ol>
390
391<p>The format of the FilterImage method is:</p>
392
393<pre class="code">
cristy488844c2010-01-22 14:02:05 +0000394 Image *FilterImage(const Image *image,const KernelInfo *kernel,
cristy16ff93c2010-01-13 23:18:07 +0000395 ExceptionInfo *exception)
396 Image *FilterImageChannel(const Image *image,const ChannelType channel,
cristy488844c2010-01-22 14:02:05 +0000397 const KernelInfo *kernel,ExceptionInfo *exception)
cristy16ff93c2010-01-13 23:18:07 +0000398</pre>
399
400<p>A description of each parameter follows:</p></ol>
401
402<h5>image</h5>
403<ol><p>the image.</p></ol>
404
405<h5>channel</h5>
406<ol><p>the channel type.</p></ol>
407
408<h5>kernel</h5>
409<ol><p>the filtering kernel.</p></ol>
410
411<h5>exception</h5>
412<ol><p>return any errors or warnings in this structure.</p></ol>
413
414 </div>
415<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
cristy3ed852e2009-09-05 21:47:34 +0000416_8c.html" target="source" name="GaussianBlurImage">GaussianBlurImage</a></h2>
417<div class="doc-section">
418
419<p>GaussianBlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and GaussianBlurImage() selects a suitable radius for you</p></ol>
420
421<p>The format of the GaussianBlurImage method is:</p>
422
423<pre class="code">
424 Image *GaussianBlurImage(const Image *image,onst double radius,
425 const double sigma,ExceptionInfo *exception)
426 Image *GaussianBlurImageChannel(const Image *image,
427 const ChannelType channel,const double radius,const double sigma,
428 ExceptionInfo *exception)
429</pre>
430
431<p>A description of each parameter follows:</p></ol>
432
433<h5>image</h5>
434<ol><p>the image.</p></ol>
435
436<h5>channel</h5>
437<ol><p>the channel type.</p></ol>
438
439<h5>radius</h5>
440<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
441
442<h5>sigma</h5>
443<ol><p>the standard deviation of the Gaussian, in pixels.</p></ol>
444
445<h5>exception</h5>
446<ol><p>return any errors or warnings in this structure.</p></ol>
447
448 </div>
449<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
450_8c.html" target="source" name="MedianFilterImage">MedianFilterImage</a></h2>
451<div class="doc-section">
452
453<p>MedianFilterImage() applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.</p></ol>
454
455<p>The algorithm was contributed by Mike Edmonds and implements an insertion sort for selecting median color-channel values. For more on this algorithm see "Skip Lists: A probabilistic Alternative to Balanced Trees" by William Pugh in the June 1990 of Communications of the ACM.</p></ol>
456
457<p>The format of the MedianFilterImage method is:</p>
458
459<pre class="code">
460 Image *MedianFilterImage(const Image *image,const double radius,
461 ExceptionInfo *exception)
462</pre>
463
464<p>A description of each parameter follows:</p></ol>
465
466<h5>image</h5>
467<ol><p>the image.</p></ol>
468
469<h5>radius</h5>
470<ol><p>the radius of the pixel neighborhood.</p></ol>
471
472<h5>exception</h5>
473<ol><p>return any errors or warnings in this structure.</p></ol>
474
475 </div>
476<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
477_8c.html" target="source" name="MotionBlurImage">MotionBlurImage</a></h2>
478<div class="doc-section">
479
480<p>MotionBlurImage() simulates motion blur. 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 MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.</p></ol>
481
482<p>Andrew Protano contributed this effect.</p></ol>
483
484<p>The format of the MotionBlurImage method is:</p>
485
486<pre class="code">
487 Image *MotionBlurImage(const Image *image,const double radius,
488 const double sigma,const double angle,ExceptionInfo *exception)
489 Image *MotionBlurImageChannel(const Image *image,const ChannelType channel,
490 const double radius,const double sigma,const double angle,
491 ExceptionInfo *exception)
492</pre>
493
494<p>A description of each parameter follows:</p></ol>
495
496<h5>image</h5>
497<ol><p>the image.</p></ol>
498
499<h5>channel</h5>
500<ol><p>the channel type.</p></ol>
501
502<h5>radius</h5>
503<ol><p>the radius of the Gaussian, in pixels, not counting the center</p>
504<h5>radius</h5>
505<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
506
507<h5>sigma</h5>
508<ol><p>the standard deviation of the Gaussian, in pixels.</p></ol>
509
510<h5>angle</h5>
cristyeaedf062010-05-29 22:36:02 +0000511<ol><p>Apply the effect along this angle.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000512
513<h5>exception</h5>
514<ol><p>return any errors or warnings in this structure.</p></ol>
515
516 </div>
517<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
518_8c.html" target="source" name="PreviewImage">PreviewImage</a></h2>
519<div class="doc-section">
520
521<p>PreviewImage() tiles 9 thumbnails of the specified image with an image processing operation applied with varying parameters. This may be helpful pin-pointing an appropriate parameter for a particular image processing operation.</p></ol>
522
523<p>The format of the PreviewImages method is:</p>
524
525<pre class="code">
526 Image *PreviewImages(const Image *image,const PreviewType preview,
527 ExceptionInfo *exception)
528</pre>
529
530<p>A description of each parameter follows:</p></ol>
531
532<h5>image</h5>
533<ol><p>the image.</p></ol>
534
535<h5>preview</h5>
536<ol><p>the image processing operation.</p></ol>
537
538<h5>exception</h5>
539<ol><p>return any errors or warnings in this structure.</p></ol>
540
541 </div>
542<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
543_8c.html" target="source" name="RadialBlurImage">RadialBlurImage</a></h2>
544<div class="doc-section">
545
546<p>RadialBlurImage() applies a radial blur to the image.</p></ol>
547
548<p>Andrew Protano contributed this effect.</p></ol>
549
550<p>The format of the RadialBlurImage method is:</p>
551
552<pre class="code">
553 Image *RadialBlurImage(const Image *image,const double angle,
554 ExceptionInfo *exception)
555 Image *RadialBlurImageChannel(const Image *image,const ChannelType channel,
556 const double angle,ExceptionInfo *exception)
557</pre>
558
559<p>A description of each parameter follows:</p></ol>
560
561<h5>image</h5>
562<ol><p>the image.</p></ol>
563
564<h5>channel</h5>
565<ol><p>the channel type.</p></ol>
566
567<h5>angle</h5>
568<ol><p>the angle of the radial blur.</p></ol>
569
570<h5>exception</h5>
571<ol><p>return any errors or warnings in this structure.</p></ol>
572
573 </div>
574<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
575_8c.html" target="source" name="ReduceNoiseImage">ReduceNoiseImage</a></h2>
576<div class="doc-section">
577
578<p>ReduceNoiseImage() smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and ReduceNoise() selects a suitable radius for you.</p></ol>
579
580<p>The format of the ReduceNoiseImage method is:</p>
581
582<pre class="code">
583 Image *ReduceNoiseImage(const Image *image,const double radius,
584 ExceptionInfo *exception)
585</pre>
586
587<p>A description of each parameter follows:</p></ol>
588
589<h5>image</h5>
590<ol><p>the image.</p></ol>
591
592<h5>radius</h5>
593<ol><p>the radius of the pixel neighborhood.</p></ol>
594
595<h5>exception</h5>
596<ol><p>return any errors or warnings in this structure.</p></ol>
597
598 </div>
599<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
600_8c.html" target="source" name="SelectiveBlurImage">SelectiveBlurImage</a></h2>
601<div class="doc-section">
602
603<p>SelectiveBlurImage() selectively blur pixels within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.</p></ol>
604
605<p>The format of the SelectiveBlurImage method is:</p>
606
607<pre class="code">
608 Image *SelectiveBlurImage(const Image *image,const double radius,
609 const double sigma,const double threshold,ExceptionInfo *exception)
610 Image *SelectiveBlurImageChannel(const Image *image,
611 const ChannelType channel,const double radius,const double sigma,
612 const double threshold,ExceptionInfo *exception)
613</pre>
614
615<p>A description of each parameter follows:</p></ol>
616
617<h5>image</h5>
618<ol><p>the image.</p></ol>
619
620<h5>channel</h5>
621<ol><p>the channel type.</p></ol>
622
623<h5>radius</h5>
624<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
625
626<h5>sigma</h5>
627<ol><p>the standard deviation of the Gaussian, in pixels.</p></ol>
628
629<h5>threshold</h5>
630<ol><p>only pixels within this contrast threshold are included in the blur operation.</p></ol>
631
632<h5>exception</h5>
633<ol><p>return any errors or warnings in this structure.</p></ol>
634
635 </div>
636<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
637_8c.html" target="source" name="ShadeImage">ShadeImage</a></h2>
638<div class="doc-section">
639
640<p>ShadeImage() shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.</p></ol>
641
642<p>The format of the ShadeImage method is:</p>
643
644<pre class="code">
645 Image *ShadeImage(const Image *image,const MagickBooleanType gray,
646 const double azimuth,const double elevation,ExceptionInfo *exception)
647</pre>
648
649<p>A description of each parameter follows:</p></ol>
650
651<h5>image</h5>
652<ol><p>the image.</p></ol>
653
654<h5>gray</h5>
655<ol><p>A value other than zero shades the intensity of each pixel.</p></ol>
656
657<h5>azimuth, elevation</h5>
658<ol><p>Define the light source direction.</p></ol>
659
660<h5>exception</h5>
661<ol><p>return any errors or warnings in this structure.</p></ol>
662
663 </div>
664<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
665_8c.html" target="source" name="SharpenImage">SharpenImage</a></h2>
666<div class="doc-section">
667
668<p>SharpenImage() sharpens the image. 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 SharpenImage() selects a suitable radius for you.</p></ol>
669
670<p>Using a separable kernel would be faster, but the negative weights cancel out on the corners of the kernel producing often undesirable ringing in the filtered result; this can be avoided by using a 2D gaussian shaped image sharpening kernel instead.</p></ol>
671
672<p>The format of the SharpenImage method is:</p>
673
674<pre class="code">
675 Image *SharpenImage(const Image *image,const double radius,
676 const double sigma,ExceptionInfo *exception)
677 Image *SharpenImageChannel(const Image *image,const ChannelType channel,
678 const double radius,const double sigma,ExceptionInfo *exception)
679</pre>
680
681<p>A description of each parameter follows:</p></ol>
682
683<h5>image</h5>
684<ol><p>the image.</p></ol>
685
686<h5>channel</h5>
687<ol><p>the channel type.</p></ol>
688
689<h5>radius</h5>
690<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
691
692<h5>sigma</h5>
693<ol><p>the standard deviation of the Laplacian, in pixels.</p></ol>
694
695<h5>exception</h5>
696<ol><p>return any errors or warnings in this structure.</p></ol>
697
698 </div>
699<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
700_8c.html" target="source" name="SpreadImage">SpreadImage</a></h2>
701<div class="doc-section">
702
703<p>SpreadImage() is a special effects method that randomly displaces each pixel in a block defined by the radius parameter.</p></ol>
704
705<p>The format of the SpreadImage method is:</p>
706
707<pre class="code">
708 Image *SpreadImage(const Image *image,const double radius,
709 ExceptionInfo *exception)
710</pre>
711
712<p>A description of each parameter follows:</p></ol>
713
714<h5>image</h5>
715<ol><p>the image.</p></ol>
716
717<h5>radius</h5>
718<ol><p>Choose a random pixel in a neighborhood of this extent.</p></ol>
719
720<h5>exception</h5>
721<ol><p>return any errors or warnings in this structure.</p></ol>
722
723 </div>
724<h2><a href="http://www.imagemagick.org/api/MagickCore/effect
725_8c.html" target="source" name="UnsharpMaskImage">UnsharpMaskImage</a></h2>
726<div class="doc-section">
727
728<p>UnsharpMaskImage() sharpens one or more image channels. 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 UnsharpMaskImage() selects a suitable radius for you.</p></ol>
729
730<p>The format of the UnsharpMaskImage method is:</p>
731
732<pre class="code">
733 Image *UnsharpMaskImage(const Image *image,const double radius,
734 const double sigma,const double amount,const double threshold,
735 ExceptionInfo *exception)
736 Image *UnsharpMaskImageChannel(const Image *image,
737 const ChannelType channel,const double radius,const double sigma,
738 const double amount,const double threshold,ExceptionInfo *exception)
739</pre>
740
741<p>A description of each parameter follows:</p></ol>
742
743<h5>image</h5>
744<ol><p>the image.</p></ol>
745
746<h5>channel</h5>
747<ol><p>the channel type.</p></ol>
748
749<h5>radius</h5>
750<ol><p>the radius of the Gaussian, in pixels, not counting the center pixel.</p></ol>
751
752<h5>sigma</h5>
753<ol><p>the standard deviation of the Gaussian, in pixels.</p></ol>
754
755<h5>amount</h5>
756<ol><p>the percentage of the difference between the original and the blur image that is added back into the original.</p></ol>
757
758<h5>threshold</h5>
759<ol><p>the threshold in pixels needed to apply the diffence amount.</p></ol>
760
761<h5>exception</h5>
762<ol><p>return any errors or warnings in this structure.</p></ol>
763
764 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000765
766</div>
767
768<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000769 <span id="linkbar-west">&nbsp;</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000770 <span id="linkbar-center">
771 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000772 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000773 </span>
774 <span id="linkbar-east">&nbsp;</span>
775 </div>
776 <div class="footer">
777 <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
778 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
779 </div>
780 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000781 <script type="text/javascript">
782 var _gaq = _gaq || [];
783 _gaq.push(['_setAccount', 'UA-17690367-1']);
784 _gaq.push(['_trackPageview']);
785
786 (function() {
787 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
788 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
789 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
790 })();
791 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000792</body>
793</html>