]> 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.0 Strict//EN"\r
2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 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, 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"/>
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-2010 ImageMagick Studio LLC"/>
23   <meta name="Distribution" content="Global"/>
24   <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"/>\r
27   <style type="text/css" media="all">\r
28     @import url("../../www/magick.css");\r
29   </style>\r
30 </head>\r
31 \r
32 <body id="www-imagemagick-org">\r
33 <div class="titlebar">\r
34 <a href="../../index.html">\r
35   <img src="../../images/script.png" alt="[ImageMagick]"\r
36   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
37 <a href="http://www.networkredux.com">\r
38   <img src="../../images/networkredux.png" alt="[sponsor]"\r
39   style="margin: 45px auto; border: 0px; float: left;" /></a>\r
40 <a href="http://www.imagemagick.org/discourse-server/">\r
41   <img src="../../images/logo.jpg" alt=""\r
42   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
43 <a href="../../index.html">\r
44   <img src="../../images/sprite.jpg" alt=""\r
45   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
46 </div>\r
47 \r
48 <div class="westbar">\r
49 \r
50 <div class="menu">
51   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
52 </div>
53 <div class="sep"></div>\r
54 <div class="menu">
55   <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>\r
67 <div class="menu">
68   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
69 </div>
70 <div class="sub">
71     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
72 </div>
73 <div class="sub">
74     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
75 </div>
76 <div class="sub">
77     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
78 </div>
79 <div class="menu">
80   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
81 </div>
82 <div class="sub">
83     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
84 </div>
85 <div class="sub">
86     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
87 </div>
88 <div class="sub">
89     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
90 </div>
91 <div class="sub">
92     <a title="Program Interface: Magick++" href="../../Magick++/">Magick++</a>
93 </div>
94 <div class="sep"></div>\r
95 <div  class="menu">
96    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
97 </div>
98 <div class="sub">
99     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
100 </div>
101 <div class="sub">
102     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
103  </div>
104 <div class="menu">
105   <a title="Resources" href="../../www/resources.html">Resources</a>
106 </div>
107 <div class="menu">
108   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
109 </div>
110 <div class="menu">
111   <a title="Download" href="../../www/download.html">Download</a>
112 </div>
113 <div class="sep"></div>\r
114 <div class="menu">
115   <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
116 </div>
117 <div class="sep"></div>\r
118 <div class="menu">
119   <a title="Site Map"href="../../www/sitemap.html">Site Map</a>
120 </div>
121 <div  class="sub">
122     <a title="Site Map: Links"href="../../www/links.html">Links</a>
123 </div>
124 <div class="sep"></div>\r
125 <div  class="menu">
126   <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
127
128 <div class="sponsbox">
129 <div  class="sponsor">
130    <a title="Sponsor: Online-Magazin" href="http://www.unkostenbeitrag.de/">Online-Magazin</a><!-- 20101101000200 -->
131 </div>
132 <div  class="sponsor">
133   <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
134 </div>
135 <div  class="sponsor">
136   <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
137 </div>
138 <div  class="sponsor">
139   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
140 </div>
141 <div  class="sponsor">
142   <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
143 </div>
144 <div  class="sponsor">
145   <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
146 </div>
147 <div  class="sponsor">
148   <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
149 </div>
150 <div  class="sponsor">
151    <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
152 </div>
153 </div>
154 </div>
155 </div>\r
156 \r
157 <div class="eastbar">\r
158   <script type="text/javascript">\r
159   <!--\r
160     google_ad_client = "pub-3129977114552745";\r
161     google_ad_slot = "0574824969";\r
162     google_ad_width = 160;\r
163     google_ad_height = 600;\r
164   //-->\r
165   </script>\r
166   <script type="text/javascript"\r
167     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
168   </script>\r
169 </div>\r
170 \r
171 <div class="main">\r
172 \r
173 <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>
174
175 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
176 _8c.html" target="source" name="FloodfillPaintImage">FloodfillPaintImage</a></h2>
177 <div class="doc-section">
178
179 <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>
180
181 <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>
182
183 <p>The format of the FloodfillPaintImage method is:</p>
184
185 <pre class="code">
186   MagickBooleanType FloodfillPaintImage(Image *image,
187     const ChannelType channel,const DrawInfo *draw_info,
188     const MagickPixelPacket target,const ssize_t x_offset,const ssize_t y_offset,
189     const MagickBooleanType invert)
190 </pre>
191
192 <p>A description of each parameter follows:</p></ol>
193
194 <h5>image</h5>
195 <ol><p>the image.</p></ol>
196
197 <h5>channel</h5>
198 <ol><p>the channel(s).</p></ol>
199
200 <h5>draw_info</h5>
201 <ol><p>the draw info.</p></ol>
202
203 <h5>target</h5>
204 <ol><p>the RGB value of the target color.</p></ol>
205
206 <h5>x_offset,y_offset</h5>
207 <ol><p>the starting location of the operation.</p></ol>
208
209 <h5>invert</h5>
210 <ol><p>paint any pixel that does not match the target color.</p></ol>
211
212  </div>
213 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
214 _8c.html" target="source" name="OilPaintImage">OilPaintImage</a></h2>
215 <div class="doc-section">
216
217 <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>
218
219 <p>The format of the OilPaintImage method is:</p>
220
221 <pre class="code">
222   Image *OilPaintImage(const Image *image,const double radius,
223     ExceptionInfo *exception)
224 </pre>
225
226 <p>A description of each parameter follows:</p></ol>
227
228 <h5>image</h5>
229 <ol><p>the image.</p></ol>
230
231 <h5>radius</h5>
232 <ol><p>the radius of the circular neighborhood.</p></ol>
233
234 <h5>exception</h5>
235 <ol><p>return any errors or warnings in this structure.</p></ol>
236
237  </div>
238 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
239 _8c.html" target="source" name="OpaquePaintImage">OpaquePaintImage</a></h2>
240 <div class="doc-section">
241
242 <p>OpaquePaintImage() changes any pixel that matches color with the color defined by fill.</p></ol>
243
244 <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>
245
246 <p>The format of the OpaquePaintImage method is:</p>
247
248 <pre class="code">
249   MagickBooleanType OpaquePaintImage(Image *image,
250     const PixelPacket *target,const PixelPacket *fill,
251     const MagickBooleanType invert)
252   MagickBooleanType OpaquePaintImageChannel(Image *image,
253     const ChannelType channel,const PixelPacket *target,
254     const PixelPacket *fill,const MagickBooleanType invert)
255 </pre>
256
257 <p>A description of each parameter follows:</p></ol>
258
259 <h5>image</h5>
260 <ol><p>the image.</p></ol>
261
262 <h5>channel</h5>
263 <ol><p>the channel(s).</p></ol>
264
265 <h5>target</h5>
266 <ol><p>the RGB value of the target color.</p></ol>
267
268 <h5>fill</h5>
269 <ol><p>the replacement color.</p></ol>
270
271 <h5>invert</h5>
272 <ol><p>paint any pixel that does not match the target color.</p></ol>
273
274  </div>
275 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
276 _8c.html" target="source" name="TransparentPaintImage">TransparentPaintImage</a></h2>
277 <div class="doc-section">
278
279 <p>TransparentPaintImage() changes the opacity value associated with any pixel that matches color to the value defined by opacity.</p></ol>
280
281 <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>
282
283 <p>The format of the TransparentPaintImage method is:</p>
284
285 <pre class="code">
286   MagickBooleanType TransparentPaintImage(Image *image,
287     const MagickPixelPacket *target,const Quantum opacity,
288     const MagickBooleanType invert)
289 </pre>
290
291 <p>A description of each parameter follows:</p></ol>
292
293 <h5>image</h5>
294 <ol><p>the image.</p></ol>
295
296 <h5>target</h5>
297 <ol><p>the target color.</p></ol>
298
299 <h5>opacity</h5>
300 <ol><p>the replacement opacity value.</p></ol>
301
302 <h5>invert</h5>
303 <ol><p>paint any pixel that does not match the target color.</p></ol>
304
305  </div>
306 <h2><a href="http://www.imagemagick.org/api/MagickCore/paint
307 _8c.html" target="source" name="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></ol>
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></ol>
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></ol>
323
324 <h5>image</h5>
325 <ol><p>the image.</p></ol>
326
327 <h5>low</h5>
328 <ol><p>the low target color.</p></ol>
329
330 <h5>high</h5>
331 <ol><p>the high target color.</p></ol>
332
333 <h5>opacity</h5>
334 <ol><p>the replacement opacity value.</p></ol>
335
336 <h5>invert</h5>
337 <ol><p>paint any pixel that does not match the target color.</p></ol>
338
339  </div>
340 \r
341 </div>\r
342 \r
343 <div id="linkbar">\r
344     <span id="linkbar-west">&nbsp;</span>\r
345     <span id="linkbar-center">\r
346       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
347       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
348     </span>\r
349     <span id="linkbar-east">&nbsp;</span>\r
350   </div>\r
351   <div class="footer">\r
352     <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>\r
353     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
354   </div>\r
355   <div style="clear: both; margin: 0; width: 100%; "></div>\r
356   <script type="text/javascript">\r
357     var _gaq = _gaq || [];\r
358     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
359     _gaq.push(['_trackPageview']);\r
360 \r
361     (function() {\r
362       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
363       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
364       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
365     })();\r
366   </script>\r
367 </body>\r
368 </html>\r