blob: cf2dbcd2260455036c75c161bf3ad7bf7bc43e20 [file] [log] [blame]
cristy44cbd482013-08-04 20:53:36 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="-//W3C//DTD XHTML 1.1//EN" xml:lang="en" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
cristy06f63f22012-10-31 00:50:07 +00003<head>
cristy44cbd482013-08-04 20:53:36 +00004 <meta http-equiv="content-type" content="text/html; charset=UTF-8"></meta>
5 <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4"></meta>
cristyffb69ed2010-12-25 00:06:48 +00006 <title>ImageMagick: MagickCore, C API for ImageMagick: Paint on an Image</title>
cristy44cbd482013-08-04 20:53:36 +00007 <meta http-equiv="content-language" content="en-US"></meta>
8 <meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>
9 <meta http-equiv="reply-to" content="magick-users@imagemagick.org"></meta>
10 <meta name="application-name" content="ImageMagick"></meta>
11 <meta name="description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition, resize, rotate, shear, distort or transform images automagically."></meta>
12 <meta name="application-url" content="http://www.imagemagick.org"></meta>
13 <meta name="generator" content="PHP"></meta>
14 <meta name="keywords" content="magickcore, c, api, for, imagemagick:, paint, on, an, image, ImageMagick, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"></meta>
15 <meta name="rating" content="GENERAL"></meta>
16 <meta name="robots" content="INDEX, FOLLOW"></meta>
17 <meta name="generator" content="ImageMagick Studio LLC"></meta>
18 <meta name="author" content="ImageMagick Studio LLC"></meta>
19 <meta name="revisit-after" content="2 DAYS"></meta>
20 <meta name="resource-type" content="document"></meta>
21 <meta name="copyright" content="Copyright (c) 1999-2012 ImageMagick Studio LLC"></meta>
22 <meta name="distribution" content="Global"></meta>
23 <link rel="icon" href="../../images/wand.png"></link>
24 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"></link>
25 <link rel="canonical" href="../../index.html"></link>
26 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"></link>
cristy8ee7f242013-06-20 16:08:44 +000027
28 <!-- Add jQuery library -->
29 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
30
31 <!-- Add mousewheel plugin (this is optional) -->
32 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
33
34 <!-- Add fancyBox -->
cristy44cbd482013-08-04 20:53:36 +000035 <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/jquery.fancybox.css?v=2.0.6" type="text/css" media="screen"></link>
cristy8ee7f242013-06-20 16:08:44 +000036 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/jquery.fancybox.pack.js?v=2.0.6"></script>
37
38 <!-- Optionally add helpers - button, thumbnail and/or media -->
cristy44cbd482013-08-04 20:53:36 +000039 <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen"></link>
cristy8ee7f242013-06-20 16:08:44 +000040 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
41 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
42
cristy44cbd482013-08-04 20:53:36 +000043 <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen"></link>
cristy8ee7f242013-06-20 16:08:44 +000044 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=2.0.6"></script>
45
cristy72da67d2013-02-24 21:40:48 +000046 <script type="text/javascript">
cristy8ee7f242013-06-20 16:08:44 +000047 $(document).ready(function() {
48 $(".fancybox").fancybox();
49 });
cristy72da67d2013-02-24 21:40:48 +000050 </script>
cristy8ee7f242013-06-20 16:08:44 +000051
52 <!-- ImageMagick style -->
53 <style type="text/css" media="all">
54 @import url("../../www/magick.css");
55 </style>
cristy06f63f22012-10-31 00:50:07 +000056</head>
57
58<body id="www-imagemagick-org">
cristy8ee7f242013-06-20 16:08:44 +000059
cristy8ee7f242013-06-20 16:08:44 +000060
cristy8ee7f242013-06-20 16:08:44 +000061
cristy06f63f22012-10-31 00:50:07 +000062<div class="titlebar">
63<div style="margin: 17px auto; float: left;">
64 <script type="text/javascript">
65 <!--
66 google_ad_client = "pub-3129977114552745";
67 google_ad_slot = "5439289906";
68 google_ad_width = 728;
69 google_ad_height = 90;
70 //-->
71 </script>
cristy44cbd482013-08-04 20:53:36 +000072
cristy06f63f22012-10-31 00:50:07 +000073</div>
cristy417eeb12013-07-28 18:48:22 +000074<a href="../../discourse-server">
cristy44cbd482013-08-04 20:53:36 +000075 <img src="../../images/logo.jpg" alt="ImageMagick Logo" style="width: 123px; height: 118px; border: 0px; float: right;"></img></a>
cristy8ee7f242013-06-20 16:08:44 +000076<a href="../../index.html">
cristy44cbd482013-08-04 20:53:36 +000077 <img src="../../images/sprite.jpg" alt="ImageMagick Sprite" style="width: 114px; height: 118px; border: 0px; float: right;"></img></a>
cristy06f63f22012-10-31 00:50:07 +000078</div>
79
80<div class="westbar">
81
cristy3ed852e2009-09-05 21:47:34 +000082<div class="menu">
cristy8ee7f242013-06-20 16:08:44 +000083 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000084</div>
cristy3ed852e2009-09-05 21:47:34 +000085<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +000086 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
cristybb503372010-05-27 20:51:26 +000087</div>
88<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +000089 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
cristybb503372010-05-27 20:51:26 +000090</div>
91<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +000092 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
cristybb503372010-05-27 20:51:26 +000093</div>
94<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +000095 <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
cristyda16f162011-02-19 23:52:17 +000096</div>
97<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +000098 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
cristybb503372010-05-27 20:51:26 +000099</div>
cristy06f63f22012-10-31 00:50:07 +0000100<div class="sep"></div>
cristybb503372010-05-27 20:51:26 +0000101<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000102 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +0000103</div>
104<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000105 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +0000106</div>
107<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000108 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +0000109</div>
110<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000111 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +0000112</div>
113<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000114 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +0000115</div>
116<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000117 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +0000118</div>
119<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000120 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +0000121</div>
122<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000123 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +0000124</div>
125<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000126 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +0000127</div>
cristy06f63f22012-10-31 00:50:07 +0000128<div class="sep"></div>
cristy44cbd482013-08-04 20:53:36 +0000129<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000130 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +0000131</div>
132<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000133 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000134</div>
135<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000136 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000137 </div>
138<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000139 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000140</div>
cristybb503372010-05-27 20:51:26 +0000141<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000142 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
cristybb503372010-05-27 20:51:26 +0000143</div>
cristy3ed852e2009-09-05 21:47:34 +0000144<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000145 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000146</div>
cristy06f63f22012-10-31 00:50:07 +0000147<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000148<div class="menu">
cristy3dfa2192013-02-24 22:46:05 +0000149 <a title="Search" href="http://www.imagemagick.org/script/search.php">Search</a>
cristy3ed852e2009-09-05 21:47:34 +0000150</div>
cristy06f63f22012-10-31 00:50:07 +0000151<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000152<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000153 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000154</div>
cristy44cbd482013-08-04 20:53:36 +0000155<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000156 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000157</div>
cristy06f63f22012-10-31 00:50:07 +0000158<div class="sep"></div>
cristy8ee7f242013-06-20 16:08:44 +0000159<div class="menu">
160 <a title="Support ImageMagick Development" href="../../www/support.html">Support ImageMagick Development</a>
cristy3ed852e2009-09-05 21:47:34 +0000161</div>
cristy06f63f22012-10-31 00:50:07 +0000162</div>
163
164<div class="eastbar">
cristy44cbd482013-08-04 20:53:36 +0000165
cristy417eeb12013-07-28 18:48:22 +0000166 <div> <a class="FlattrButton" style="display:none;" rev="flattr;button:compact;" href="../../index.html"></a></div>
cristy8ee7f242013-06-20 16:08:44 +0000167 <noscript>
168 <a href="http://flattr.com/thing/947300/Convert-Edit-And-Compose-Images" target="_blank">
cristy44cbd482013-08-04 20:53:36 +0000169 <img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" width="93" height="20" border="0"></img></a>
cristy8ee7f242013-06-20 16:08:44 +0000170 </noscript>
cristy44cbd482013-08-04 20:53:36 +0000171
172
cristy06f63f22012-10-31 00:50:07 +0000173</div>
174
175<div class="main">
176
cristy20398432011-08-11 01:31:50 +0000177<h1>Module paint Methods</h1>
cristy44cbd482013-08-04 20:53:36 +0000178<p class="navigation-index">[<a href="paint.html#FloodfillPaintImage">FloodfillPaintImage</a><a href="paint.html#OilPaintImage">OilPaintImage</a><a href="paint.html#OpaquePaintImage">OpaquePaintImage</a><a href="paint.html#TransparentPaintImage">TransparentPaintImage</a><a href="paint.html#TransparentPaintImageChroma">TransparentPaintImageChroma</a>]</p>
cristy3ed852e2009-09-05 21:47:34 +0000179
cristy20398432011-08-11 01:31:50 +0000180<h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="FloodfillPaintImage">FloodfillPaintImage</a></h2>
181<div class="doc-section">
182
183<p>FloodfillPaintImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.</p>
184
185<p>By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.</p>
186
187<p>The format of the FloodfillPaintImage method is:</p>
188
189<pre class="code">
190 MagickBooleanType FloodfillPaintImage(Image *image,
191 const ChannelType channel,const DrawInfo *draw_info,
192 const MagickPixelPacket target,const ssize_t x_offset,
193 const ssize_t y_offset,const MagickBooleanType invert)
194</pre>
195
196<p>A description of each parameter follows:</p>
197
198<h5>image</h5>
199<p>the image.</p>
200
201<h5>channel</h5>
202<p>the channel(s).</p>
203
204<h5>draw_info</h5>
205<p>the draw info.</p>
206
207<h5>target</h5>
208<p>the RGB value of the target color.</p>
209
210<h5>x_offset,y_offset</h5>
211<p>the starting location of the operation.</p>
212
213<h5>invert</h5>
214<p>paint any pixel that does not match the target color.</p>
215
216 </div>
217<h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="OilPaintImage">OilPaintImage</a></h2>
218<div class="doc-section">
219
220<p>OilPaintImage() applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.</p>
221
222<p>The format of the OilPaintImage method is:</p>
223
224<pre class="code">
225 Image *OilPaintImage(const Image *image,const double radius,
226 ExceptionInfo *exception)
227</pre>
228
229<p>A description of each parameter follows:</p>
230
231<h5>image</h5>
232<p>the image.</p>
233
234<h5>radius</h5>
235<p>the radius of the circular neighborhood.</p>
236
237<h5>exception</h5>
238<p>return any errors or warnings in this structure.</p>
239
240 </div>
241<h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="OpaquePaintImage">OpaquePaintImage</a></h2>
242<div class="doc-section">
243
244<p>OpaquePaintImage() changes any pixel that matches color with the color defined by fill.</p>
245
246<p>By default color must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. Fuzz defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.</p>
247
248<p>The format of the OpaquePaintImage method is:</p>
249
250<pre class="code">
251 MagickBooleanType OpaquePaintImage(Image *image,
252 const PixelPacket *target,const PixelPacket *fill,
253 const MagickBooleanType invert)
254 MagickBooleanType OpaquePaintImageChannel(Image *image,
255 const ChannelType channel,const PixelPacket *target,
256 const PixelPacket *fill,const MagickBooleanType invert)
257</pre>
258
259<p>A description of each parameter follows:</p>
260
261<h5>image</h5>
262<p>the image.</p>
263
264<h5>channel</h5>
265<p>the channel(s).</p>
266
267<h5>target</h5>
268<p>the RGB value of the target color.</p>
269
270<h5>fill</h5>
271<p>the replacement color.</p>
272
273<h5>invert</h5>
274<p>paint any pixel that does not match the target color.</p>
275
276 </div>
277<h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="TransparentPaintImage">TransparentPaintImage</a></h2>
278<div class="doc-section">
279
280<p>TransparentPaintImage() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p>
281
282<p>By default color must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. Fuzz defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.</p>
283
284<p>The format of the TransparentPaintImage method is:</p>
285
286<pre class="code">
287 MagickBooleanType TransparentPaintImage(Image *image,
288 const MagickPixelPacket *target,const Quantum opacity,
289 const MagickBooleanType invert)
290</pre>
291
292<p>A description of each parameter follows:</p>
293
294<h5>image</h5>
295<p>the image.</p>
296
297<h5>target</h5>
298<p>the target color.</p>
299
300<h5>opacity</h5>
301<p>the replacement opacity value.</p>
302
303<h5>invert</h5>
304<p>paint any pixel that does not match the target color.</p>
305
306 </div>
307<h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="TransparentPaintImageChroma">TransparentPaintImageChroma</a></h2>
308<div class="doc-section">
309
310<p>TransparentPaintImageChroma() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p>
311
312<p>As there is one fuzz value for the all the channels, the TransparentPaintImage() API is not suitable for the operations like chroma, where the tolerance for similarity of two color component (RGB) can be different, Thus we define this method take two target pixels (one low and one hight) and all the pixels of an image which are lying between these two pixels are made transparent.</p>
313
314<p>The format of the TransparentPaintImage method is:</p>
315
316<pre class="code">
317 MagickBooleanType TransparentPaintImage(Image *image,
318 const MagickPixelPacket *low,const MagickPixelPacket *hight,
319 const Quantum opacity,const MagickBooleanType invert)
320</pre>
321
322<p>A description of each parameter follows:</p>
323
324<h5>image</h5>
325<p>the image.</p>
326
327<h5>low</h5>
328<p>the low target color.</p>
329
330<h5>high</h5>
331<p>the high target color.</p>
332
333<h5>opacity</h5>
334<p>the replacement opacity value.</p>
335
336<h5>invert</h5>
337<p>paint any pixel that does not match the target color.</p>
338
339 </div>
cristy06f63f22012-10-31 00:50:07 +0000340
341</div>
342
343<div id="linkbar">
cristyac1b4322013-07-28 13:58:06 +0000344 <span id="linkbar-west"> </span>
cristy8ee7f242013-06-20 16:08:44 +0000345
cristy06f63f22012-10-31 00:50:07 +0000346 <span id="linkbar-center">
cristy44cbd482013-08-04 20:53:36 +0000347 <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a>
348 <a href="../../discourse-server">Discourse Server</a>
349 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy8ee7f242013-06-20 16:08:44 +0000350 <a href="http://jqmagick.imagemagick.org/">JqMagick</a>
cristy06f63f22012-10-31 00:50:07 +0000351 </span>
cristyac1b4322013-07-28 13:58:06 +0000352 <span id="linkbar-east"> </span>
cristy44cbd482013-08-04 20:53:36 +0000353</div>
354<div class="footer">
355 <span id="footer-west">© 1999-2013 ImageMagick Studio LLC</span>
356 <span id="footer-east"> <a href="../../www/contact.html">Contact the Wizards</a></span>
357</div>
358<div style="clear: both; margin: 0; width: 100%; "></div>
cristy06f63f22012-10-31 00:50:07 +0000359</body>
360</html>