]> granicus.if.org Git - imagemagick/blob - www/api/paint.html
(no commit message)
[imagemagick] / www / api / paint.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" \r
2   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html version="-//W3C//DTD XHTML 1.1//EN"\r
4       xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"\r
5       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
6       xsi:schemaLocation="http://www.w3.org/1999/xhtml\r
7                           http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">\r
8 <head>\r
9   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
10   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
11   <title>ImageMagick: MagickCore, C API for ImageMagick: Paint on an Image</title>
12   <meta http-equiv="Content-Language" content="en-US"/>
13   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
14   <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
15   <meta name="Application-name" content="ImageMagick"/>
16   <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images automagically."/>
17   <meta name="Application-url" content="http://www.imagemagick.org"/>
18   <meta name="Generator" content="PHP"/>
19   <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, paint, on, an, image, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Image, Processing, Automagically"/>
20   <meta name="Rating" content="GENERAL"/>
21   <meta name="Robots" content="INDEX, FOLLOW"/>
22   <meta name="Generator" content="ImageMagick Studio LLC"/>
23   <meta name="Author" content="ImageMagick Studio LLC"/>
24   <meta name="Revisit-after" content="2 DAYS"/>
25   <meta name="Resource-type" content="document"/>
26   <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
27   <meta name="Distribution" content="Global"/>
28   <link rel="icon" href="../../images/wand.png"/>
29   <link rel="shortcut icon" href="../../images/wand.ico"  type="images/x-icon"/>
30   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
31   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />\r
32   <style type="text/css" media="all">\r
33     @import url("../../www/magick.css");\r
34   </style>\r
35   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
36   <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
37   <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
38   <script type="text/javascript">\r
39     $(document).ready(function() {\r
40       $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
41         'transitionIn'  : 'elastic',\r
42         'transitionOut' : 'elastic',\r
43         'overlayShow'   : false,\r
44         'opacity'       : true\r
45       });\r
46     });\r
47   </script>\r
48 </head>\r
49 \r
50 <body id="www-imagemagick-org">\r
51 <div class="titlebar">\r
52 <div style="margin: 17px auto; float: left;">\r
53   <script type="text/javascript">\r
54   <!--\r
55     google_ad_client = "pub-3129977114552745";\r
56     google_ad_slot = "5439289906";\r
57     google_ad_width = 728;\r
58     google_ad_height = 90;\r
59   //-->\r
60   </script>\r
61   <script type="text/javascript"\r
62     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
63   </script>\r
64 </div>\r
65 <a href="http://www.imagemagick.org/discourse-server/">\r
66   <img src="../../images/logo.jpg"\r
67   alt="ImageMagick Logo"\r
68   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>\r
69 <a href="../../index.html">\r
70   <img src="../../images/sprite.jpg"\r
71   alt="ImageMagick Sprite"\r
72   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
73 </div>\r
74 \r
75 <div class="westbar">\r
76 \r
77 <div class="menu">
78   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
79 </div>
80 <div class="sep"></div>\r
81 <div class="menu">
82   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
83 </div>
84 <div class="sub">
85     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
86 </div>
87 <div class="sub">
88     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
89 </div>
90 <div class="sub">
91     <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
92 </div>
93 <div class="sub">
94     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
95 </div>
96 <div class="sep"></div>\r
97 <div class="menu">
98   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
99 </div>
100 <div class="sub">
101     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
102 </div>
103 <div class="sub">
104     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
105 </div>
106 <div class="sub">
107     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
108 </div>
109 <div class="menu">
110   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
111 </div>
112 <div class="sub">
113     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
114 </div>
115 <div class="sub">
116     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
117 </div>
118 <div class="sub">
119     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
120 </div>
121 <div class="sub">
122     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
123 </div>
124 <div class="sep"></div>\r
125 <div  class="menu">
126    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
127 </div>
128 <div class="sub">
129     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
130 </div>
131 <div class="sub">
132     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
133  </div>
134 <div class="menu">
135   <a title="Resources" href="../../www/resources.html">Resources</a>
136 </div>
137 <div class="menu">
138   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
139 </div>
140 <div class="menu">
141   <a title="Download" href="../../www/download.html">Download</a>
142 </div>
143 <div class="sep"></div>\r
144 <div class="menu">
145   <a title="Search" href="../../www/search.html">Search</a>
146 </div>
147 <div class="sep"></div>\r
148 <div class="menu">
149   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
150 </div>
151 <div  class="sub">
152   <a title="Site Map: Links" href="../../www/links.html">Links</a>
153 </div>
154 <div class="sep"></div>\r
155 <div  class="menu">
156   <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
157
158 <a href="http://www.networkredux.com">
159   <img src="../../images/networkredux.png" alt="[sponsor]"
160   style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
161 <div class="sponsbox">
162 <div  class="sponsor">
163   <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
164 </div>
165 <div  class="sponsor">
166   <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
167 </div>
168 <div  class="sponsor">
169   <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
170 </div>
171 <div  class="sponsor">
172   <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
173 </div>
174 <div  class="sponsor">
175   <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
176 </div>
177 <div  class="sponsor">
178   <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
179 </div>
180 <div  class="sponsor">
181   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
182 </div>
183 <div  class="sponsor">
184   <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
185 </div>
186 <div  class="sponsor">
187   <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
188 </div>
189 <div  class="sponsor">
190   <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
191 </div>
192 <div  class="sponsor">
193   <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
194 </div>
195 <div  class="sponsor">
196   <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
197 </div>
198 <div  class="sponsor">
199   <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
200 </div>
201 <div  class="sponsor">
202    <a rel="follow" title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011080100030 autoteile-Carparts-->
203 </div>
204 </div>
205 </div>
206 </div>\r
207 \r
208 <div class="eastbar">\r
209 \r
210 </div>\r
211 \r
212 <div class="main">\r
213 \r
214 <h1>Module paint Methods</h1>
215 <p class="navigation-index">[<a href="#FloodfillPaintImage">FloodfillPaintImage</a> &bull; <a href="#OilPaintImage">OilPaintImage</a> &bull; <a href="#OpaquePaintImage">OpaquePaintImage</a> &bull; <a href="#TransparentPaintImage">TransparentPaintImage</a> &bull; <a href="#TransparentPaintImageChroma">TransparentPaintImageChroma</a>]</p>
216
217 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="FloodfillPaintImage">FloodfillPaintImage</a></h2>
218 <div class="doc-section">
219
220 <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>
221
222 <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>
223
224 <p>The format of the FloodfillPaintImage method is:</p>
225
226 <pre class="code">
227   MagickBooleanType FloodfillPaintImage(Image *image,
228     const ChannelType channel,const DrawInfo *draw_info,
229     const MagickPixelPacket target,const ssize_t x_offset,
230     const ssize_t y_offset,const MagickBooleanType invert)
231 </pre>
232
233 <p>A description of each parameter follows:</p>
234
235 <h5>image</h5>
236 <p>the image.</p>
237
238 <h5>channel</h5>
239 <p>the channel(s).</p>
240
241 <h5>draw_info</h5>
242 <p>the draw info.</p>
243
244 <h5>target</h5>
245 <p>the RGB value of the target color.</p>
246
247 <h5>x_offset,y_offset</h5>
248 <p>the starting location of the operation.</p>
249
250 <h5>invert</h5>
251 <p>paint any pixel that does not match the target color.</p>
252
253  </div>
254 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="OilPaintImage">OilPaintImage</a></h2>
255 <div class="doc-section">
256
257 <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>
258
259 <p>The format of the OilPaintImage method is:</p>
260
261 <pre class="code">
262   Image *OilPaintImage(const Image *image,const double radius,
263     ExceptionInfo *exception)
264 </pre>
265
266 <p>A description of each parameter follows:</p>
267
268 <h5>image</h5>
269 <p>the image.</p>
270
271 <h5>radius</h5>
272 <p>the radius of the circular neighborhood.</p>
273
274 <h5>exception</h5>
275 <p>return any errors or warnings in this structure.</p>
276
277  </div>
278 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="OpaquePaintImage">OpaquePaintImage</a></h2>
279 <div class="doc-section">
280
281 <p>OpaquePaintImage() changes any pixel that matches color with the color defined by fill.</p>
282
283 <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>
284
285 <p>The format of the OpaquePaintImage method is:</p>
286
287 <pre class="code">
288   MagickBooleanType OpaquePaintImage(Image *image,
289     const PixelPacket *target,const PixelPacket *fill,
290     const MagickBooleanType invert)
291   MagickBooleanType OpaquePaintImageChannel(Image *image,
292     const ChannelType channel,const PixelPacket *target,
293     const PixelPacket *fill,const MagickBooleanType invert)
294 </pre>
295
296 <p>A description of each parameter follows:</p>
297
298 <h5>image</h5>
299 <p>the image.</p>
300
301 <h5>channel</h5>
302 <p>the channel(s).</p>
303
304 <h5>target</h5>
305 <p>the RGB value of the target color.</p>
306
307 <h5>fill</h5>
308 <p>the replacement color.</p>
309
310 <h5>invert</h5>
311 <p>paint any pixel that does not match the target color.</p>
312
313  </div>
314 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="TransparentPaintImage">TransparentPaintImage</a></h2>
315 <div class="doc-section">
316
317 <p>TransparentPaintImage() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p>
318
319 <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>
320
321 <p>The format of the TransparentPaintImage method is:</p>
322
323 <pre class="code">
324   MagickBooleanType TransparentPaintImage(Image *image,
325     const MagickPixelPacket *target,const Quantum opacity,
326     const MagickBooleanType invert)
327 </pre>
328
329 <p>A description of each parameter follows:</p>
330
331 <h5>image</h5>
332 <p>the image.</p>
333
334 <h5>target</h5>
335 <p>the target color.</p>
336
337 <h5>opacity</h5>
338 <p>the replacement opacity value.</p>
339
340 <h5>invert</h5>
341 <p>paint any pixel that does not match the target color.</p>
342
343  </div>
344 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint_8c.html" id="TransparentPaintImageChroma">TransparentPaintImageChroma</a></h2>
345 <div class="doc-section">
346
347 <p>TransparentPaintImageChroma() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p>
348
349 <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>
350
351 <p>The format of the TransparentPaintImage method is:</p>
352
353 <pre class="code">
354   MagickBooleanType TransparentPaintImage(Image *image,
355     const MagickPixelPacket *low,const MagickPixelPacket *hight,
356     const Quantum opacity,const MagickBooleanType invert)
357 </pre>
358
359 <p>A description of each parameter follows:</p>
360
361 <h5>image</h5>
362 <p>the image.</p>
363
364 <h5>low</h5>
365 <p>the low target color.</p>
366
367 <h5>high</h5>
368 <p>the high target color.</p>
369
370 <h5>opacity</h5>
371 <p>the replacement opacity value.</p>
372
373 <h5>invert</h5>
374 <p>paint any pixel that does not match the target color.</p>
375
376  </div>
377 \r
378 </div>\r
379 \r
380 <div id="linkbar">\r
381     <span id="linkbar-west">&nbsp;</span>\r
382     <span id="linkbar-center">\r
383       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
384       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
385     </span>\r
386     <span id="linkbar-east">&nbsp;</span>\r
387   </div>\r
388   <div class="footer">\r
389     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
390     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
391   </div>\r
392   <div style="clear: both; margin: 0; width: 100%; "></div>\r
393   <script type="text/javascript">\r
394     var _gaq = _gaq || [];\r
395     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
396     _gaq.push(['_trackPageview']);\r
397 \r
398     (function() {\r
399       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
400       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
401       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
402     })();\r
403   </script>\r
404 </body>\r
405 </html>\r