]> 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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">\r
4 <head>\r
5   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
6   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
7   <title>ImageMagick: MagickCore, C API for ImageMagick: Paint on an Image</title>
8   <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"/>
11   <meta name="Application-name" content="ImageMagick"/>
12   <meta name="Description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images in a variety of formats. Use ImageMagick to scale, rotate, shear, distort and transform images."/>
13   <meta name="Application-url" content="http://www.imagemagick.org"/>
14   <meta name="Generator" content="PHP"/>
15   <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, Swiss, Army, Knife, Image, Processing"/>
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-2011 ImageMagick Studio LLC"/>
23   <meta name="Distribution" content="Global"/>
24   <link rel="icon" href="../../images/wand.png"/>
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"/>\r
27   <style type="text/css" media="all">\r
28     @import url("../../www/magick.css");\r
29   </style>\r
30   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
31   <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
32   <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
33   <script type="text/javascript">\r
34     $(document).ready(function() {\r
35       $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
36         'transitionIn'  : 'elastic',\r
37         'transitionOut' : 'elastic',\r
38         'overlayShow'   : false,\r
39         'opacity'       : true\r
40       });\r
41     });\r
42   </script>\r
43 </head>\r
44 \r
45 <body id="www-imagemagick-org">\r
46 <div class="titlebar">\r
47 <a href="../../index.html">\r
48   <img src="../../images/script.png" alt="[ImageMagick]"\r
49   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
50 <a href="http://www.networkredux.com">\r
51   <img src="../../images/networkredux.png" alt="[sponsor]"\r
52   style="margin: 45px auto; border: 0px; float: left;" /></a>\r
53 <a href="http://www.imagemagick.org/discourse-server/">\r
54   <img src="../../images/logo.jpg" alt=""\r
55   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
56 <a href="../../index.html">\r
57   <img src="../../images/sprite.jpg" alt=""\r
58   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
59 </div>\r
60 \r
61 <div class="westbar">\r
62 \r
63 <div class="menu">
64   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
65 </div>
66 <div class="sep"></div>\r
67 <div class="menu">
68   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
69 </div>
70 <div class="sub">
71     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
72 </div>
73 <div class="sub">
74     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
75 </div>
76 <div class="sub">
77     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
78 </div>
79 <div class="sep"></div>\r
80 <div class="menu">
81   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
82 </div>
83 <div class="sub">
84     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
85 </div>
86 <div class="sub">
87     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
88 </div>
89 <div class="sub">
90     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
91 </div>
92 <div class="menu">
93   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
94 </div>
95 <div class="sub">
96     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
97 </div>
98 <div class="sub">
99     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
100 </div>
101 <div class="sub">
102     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
103 </div>
104 <div class="sub">
105     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
106 </div>
107 <div class="sep"></div>\r
108 <div  class="menu">
109    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
110 </div>
111 <div class="sub">
112     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
113 </div>
114 <div class="sub">
115     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
116  </div>
117 <div class="menu">
118   <a title="Resources" href="../../www/resources.html">Resources</a>
119 </div>
120 <div class="menu">
121   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
122 </div>
123 <div class="menu">
124   <a title="Download" href="../../www/download.html">Download</a>
125 </div>
126 <div class="sep"></div>\r
127 <div class="menu">
128   <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
129 </div>
130 <div class="sep"></div>\r
131 <div class="menu">
132   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
133 </div>
134 <div  class="sub">
135   <a title="Site Map: Links" href="../../www/links.html">Links</a>
136 </div>
137 <div class="sep"></div>\r
138 <div  class="menu">
139   <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
140
141 <div class="sponsbox">
142 <div  class="sponsor">
143    <a title="Sponsor: Webdesign" href="http://www.renehornig.com/">Webdesign</a><!-- 20111001000240 -->
144 </div>
145 <div  class="sponsor">
146   <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
147 </div>
148 <div  class="sponsor">
149   <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
150 </div>
151 <div  class="sponsor">
152   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
153 </div>
154 </div>
155 </div>
156 </div>\r
157 \r
158 <div class="eastbar">\r
159   <script type="text/javascript">\r
160   <!--\r
161     google_ad_client = "pub-3129977114552745";\r
162     google_ad_slot = "0574824969";\r
163     google_ad_width = 160;\r
164     google_ad_height = 600;\r
165   //-->\r
166   </script>\r
167   <script type="text/javascript"\r
168     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
169   </script>\r
170 </div>\r
171 \r
172 <div class="main">\r
173 \r
174 <h1>Module paint
175  Methods</h1>
176 <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>
177
178 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
179 _8c.html" target="source" name="FloodfillPaintImage">FloodfillPaintImage</a></h2>
180 <div class="doc-section">
181
182 <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></ol>
183
184 <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></ol>
185
186 <p>The format of the FloodfillPaintImage method is:</p>
187
188 <pre class="code">
189   MagickBooleanType FloodfillPaintImage(Image *image,
190     const ChannelType channel,const DrawInfo *draw_info,
191     const MagickPixelPacket target,const ssize_t x_offset,const ssize_t y_offset,
192     const MagickBooleanType invert)
193 </pre>
194
195 <p>A description of each parameter follows:</p></ol>
196
197 <h5>image</h5>
198 <ol><p>the image.</p></ol>
199
200 <h5>channel</h5>
201 <ol><p>the channel(s).</p></ol>
202
203 <h5>draw_info</h5>
204 <ol><p>the draw info.</p></ol>
205
206 <h5>target</h5>
207 <ol><p>the RGB value of the target color.</p></ol>
208
209 <h5>x_offset,y_offset</h5>
210 <ol><p>the starting location of the operation.</p></ol>
211
212 <h5>invert</h5>
213 <ol><p>paint any pixel that does not match the target color.</p></ol>
214
215  </div>
216 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
217 _8c.html" target="source" name="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></ol>
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></ol>
230
231 <h5>image</h5>
232 <ol><p>the image.</p></ol>
233
234 <h5>radius</h5>
235 <ol><p>the radius of the circular neighborhood.</p></ol>
236
237 <h5>exception</h5>
238 <ol><p>return any errors or warnings in this structure.</p></ol>
239
240  </div>
241 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
242 _8c.html" target="source" name="OpaquePaintImage">OpaquePaintImage</a></h2>
243 <div class="doc-section">
244
245 <p>OpaquePaintImage() changes any pixel that matches color with the color defined by fill.</p></ol>
246
247 <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></ol>
248
249 <p>The format of the OpaquePaintImage method is:</p>
250
251 <pre class="code">
252   MagickBooleanType OpaquePaintImage(Image *image,
253     const PixelPacket *target,const PixelPacket *fill,
254     const MagickBooleanType invert)
255   MagickBooleanType OpaquePaintImageChannel(Image *image,
256     const ChannelType channel,const PixelPacket *target,
257     const PixelPacket *fill,const MagickBooleanType invert)
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(s).</p></ol>
267
268 <h5>target</h5>
269 <ol><p>the RGB value of the target color.</p></ol>
270
271 <h5>fill</h5>
272 <ol><p>the replacement color.</p></ol>
273
274 <h5>invert</h5>
275 <ol><p>paint any pixel that does not match the target color.</p></ol>
276
277  </div>
278 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
279 _8c.html" target="source" name="TransparentPaintImage">TransparentPaintImage</a></h2>
280 <div class="doc-section">
281
282 <p>TransparentPaintImage() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p></ol>
283
284 <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></ol>
285
286 <p>The format of the TransparentPaintImage method is:</p>
287
288 <pre class="code">
289   MagickBooleanType TransparentPaintImage(Image *image,
290     const MagickPixelPacket *target,const Quantum opacity,
291     const MagickBooleanType invert)
292 </pre>
293
294 <p>A description of each parameter follows:</p></ol>
295
296 <h5>image</h5>
297 <ol><p>the image.</p></ol>
298
299 <h5>target</h5>
300 <ol><p>the target color.</p></ol>
301
302 <h5>opacity</h5>
303 <ol><p>the replacement opacity value.</p></ol>
304
305 <h5>invert</h5>
306 <ol><p>paint any pixel that does not match the target color.</p></ol>
307
308  </div>
309 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
310 _8c.html" target="source" name="TransparentPaintImageChroma">TransparentPaintImageChroma</a></h2>
311 <div class="doc-section">
312
313 <p>TransparentPaintImageChroma() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p></ol>
314
315 <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></ol>
316
317 <p>The format of the TransparentPaintImage method is:</p>
318
319 <pre class="code">
320   MagickBooleanType TransparentPaintImage(Image *image,
321     const MagickPixelPacket *low,const MagickPixelPacket *hight,
322     const Quantum opacity,const MagickBooleanType invert)
323 </pre>
324
325 <p>A description of each parameter follows:</p></ol>
326
327 <h5>image</h5>
328 <ol><p>the image.</p></ol>
329
330 <h5>low</h5>
331 <ol><p>the low target color.</p></ol>
332
333 <h5>high</h5>
334 <ol><p>the high target color.</p></ol>
335
336 <h5>opacity</h5>
337 <ol><p>the replacement opacity value.</p></ol>
338
339 <h5>invert</h5>
340 <ol><p>paint any pixel that does not match the target color.</p></ol>
341
342  </div>
343 \r
344 </div>\r
345 \r
346 <div id="linkbar">\r
347     <span id="linkbar-west">&nbsp;</span>\r
348     <span id="linkbar-center">\r
349       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
350       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
351     </span>\r
352     <span id="linkbar-east">&nbsp;</span>\r
353   </div>\r
354   <div class="footer">\r
355     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
356     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
357   </div>\r
358   <div style="clear: both; margin: 0; width: 100%; "></div>\r
359   <script type="text/javascript">\r
360     var _gaq = _gaq || [];\r
361     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
362     _gaq.push(['_trackPageview']);\r
363 \r
364     (function() {\r
365       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
366       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
367       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
368     })();\r
369   </script>\r
370 </body>\r
371 </html>\r