]> granicus.if.org Git - imagemagick/blob - www/api/wand-view.html
(no commit message)
[imagemagick] / www / api / wand-view.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: MagickWand, C API for ImageMagick: Wand View Methods</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."/>
17   <meta name="Application-url" content="http://www.imagemagick.org"/>
18   <meta name="Generator" content="PHP"/>
19   <meta name="Keywords" content="magickwc, api, for, imagemagick:, wview, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
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: iPhone" href="../../www/binary-releases.html#iPhone">iPhone</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 Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
164 </div>
165 <div  class="sponsor">
166   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
167 </div>
168 <div  class="sponsor">
169   <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
170 </div>
171 <div  class="sponsor">
172   <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
173 </div>
174 <div  class="sponsor">
175   <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
176 </div>
177 <div  class="sponsor">
178   <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
179 </div>
180 <div  class="sponsor">
181   <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
182 </div>
183 <div  class="sponsor">
184   <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
185 </div>
186 <div  class="sponsor">
187   <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
188 </div>
189 <div  class="sponsor">
190    <a rel="follow" title="Sponsor: Fernsehdienst Berlin" href="http://www.atlas-multimedia.de">Fernsehdienst Berlin</a><!-- 2011080100025 atlas.multimedia-->
191 </div>
192 </div>
193 </div>
194 </div>\r
195 \r
196 <div class="eastbar">\r
197 \r
198 </div>\r
199 \r
200 <div class="main">\r
201 \r
202 <h1>Module wand-view Methods</h1>
203 <p class="navigation-index">[<a href="#CloneWandView">CloneWandView</a> &bull; <a href="#DestroyWandView">DestroyWandView</a> &bull; <a href="#DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a> &bull; <a href="#GetWandViewException">GetWandViewException</a> &bull; <a href="#GetWandViewExtent">GetWandViewExtent</a> &bull; <a href="#GetWandViewIterator">GetWandViewIterator</a> &bull; <a href="#GetWandViewPixels">GetWandViewPixels</a> &bull; <a href="#GetWandViewWand">GetWandViewWand</a> &bull; <a href="#IsWandView">IsWandView</a> &bull; <a href="#NewWandView">NewWandView</a> &bull; <a href="#NewWandViewExtent">NewWandViewExtent</a> &bull; <a href="#SetWandViewDescription">SetWandViewDescription</a> &bull; <a href="#SetWandViewIterator">SetWandViewIterator</a> &bull; <a href="#SetWandViewThreads">SetWandViewThreads</a> &bull; <a href="#TransferWandViewIterator">TransferWandViewIterator</a> &bull; <a href="#UpdateWandViewIterator">UpdateWandViewIterator</a>]</p>
204
205 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="CloneWandView">CloneWandView</a></h2>
206 <div class="doc-section">
207
208 <p>CloneWandView() makes a copy of the specified wand view.</p>
209
210 <p>The format of the CloneWandView method is:</p>
211
212 <pre class="code">
213   WandView *CloneWandView(const WandView *wand_view)
214 </pre>
215
216 <p>A description of each parameter follows:</p>
217
218 <h5>wand_view</h5>
219 <p>the wand view.</p>
220
221  </div>
222 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DestroyWandView">DestroyWandView</a></h2>
223 <div class="doc-section">
224
225 <p>DestroyWandView() deallocates memory associated with a wand view.</p>
226
227 <p>The format of the DestroyWandView method is:</p>
228
229 <pre class="code">
230   WandView *DestroyWandView(WandView *wand_view)
231 </pre>
232
233 <p>A description of each parameter follows:</p>
234
235 <h5>wand_view</h5>
236 <p>the wand view.</p>
237
238  </div>
239 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a></h2>
240 <div class="doc-section">
241
242 <p>DuplexTransferWandViewIterator() iterates over three wand views in parallel and calls your transfer method for each scanline of the view.  The source and duplex pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension.  However, the destination wand view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p>
243
244 <p>The callback signature is:</p>
245
246 <pre class="text">
247   MagickBooleanType DuplexTransferImageViewMethod(const WandView *source,
248     const WandView *duplex,WandView *destination,const ssize_t y,
249     const int thread_id,void *context)
250 </pre>
251
252 <p>Use this pragma if the view is not single threaded:</p>
253
254 <pre class="text">
255       #pragma omp critical
256 </pre>
257
258 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
259
260 <p>The format of the DuplexTransferWandViewIterator method is:</p>
261
262 <pre class="code">
263   MagickBooleanType DuplexTransferWandViewIterator(WandView *source,
264     WandView *duplex,WandView *destination,
265     DuplexTransferWandViewMethod transfer,void *context)
266 </pre>
267
268 <p>A description of each parameter follows:</p>
269
270 <h5>source</h5>
271 <p>the source wand view.</p>
272
273 <h5>duplex</h5>
274 <p>the duplex wand view.</p>
275
276 <h5>destination</h5>
277 <p>the destination wand view.</p>
278
279 <h5>transfer</h5>
280 <p>the transfer callback method.</p>
281
282 <h5>context</h5>
283 <p>the user defined context.</p>
284
285  </div>
286 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewException">GetWandViewException</a></h2>
287 <div class="doc-section">
288
289 <p>GetWandViewException() returns the severity, reason, and description of any error that occurs when utilizing a wand view.</p>
290
291 <p>The format of the GetWandViewException method is:</p>
292
293 <pre class="code">
294   char *GetWandViewException(const PixelWand *wand_view,
295     ExceptionType *severity)
296 </pre>
297
298 <p>A description of each parameter follows:</p>
299
300 <h5>wand_view</h5>
301 <p>the pixel wand_view.</p>
302
303 <h5>severity</h5>
304 <p>the severity of the error is returned here.</p>
305
306  </div>
307 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewExtent">GetWandViewExtent</a></h2>
308 <div class="doc-section">
309
310 <p>GetWandViewExtent() returns the wand view extent.</p>
311
312 <p>The format of the GetWandViewExtent method is:</p>
313
314 <pre class="code">
315   RectangleInfo GetWandViewExtent(const WandView *wand_view)
316 </pre>
317
318 <p>A description of each parameter follows:</p>
319
320 <h5>wand_view</h5>
321 <p>the wand view.</p>
322
323  </div>
324 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewIterator">GetWandViewIterator</a></h2>
325 <div class="doc-section">
326
327 <p>GetWandViewIterator() iterates over the wand view in parallel and calls your get method for each scanline of the view.  The pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension.  Any updates to the pixels in your callback are ignored.</p>
328
329 <p>The callback signature is:</p>
330
331 <pre class="text">
332   MagickBooleanType GetImageViewMethod(const WandView *source,
333     const ssize_t y,const int thread_id,void *context)
334 </pre>
335
336 <p>Use this pragma if the view is not single threaded:</p>
337
338 <pre class="text">
339       #pragma omp critical
340 </pre>
341
342 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
343
344 <p>The format of the GetWandViewIterator method is:</p>
345
346 <pre class="code">
347   MagickBooleanType GetWandViewIterator(WandView *source,
348     GetWandViewMethod get,void *context)
349 </pre>
350
351 <p>A description of each parameter follows:</p>
352
353 <h5>source</h5>
354 <p>the source wand view.</p>
355
356 <h5>get</h5>
357 <p>the get callback method.</p>
358
359 <h5>context</h5>
360 <p>the user defined context.</p>
361
362  </div>
363 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewPixels">GetWandViewPixels</a></h2>
364 <div class="doc-section">
365
366 <p>GetWandViewPixels() returns the wand view pixel_wands.</p>
367
368 <p>The format of the GetWandViewPixels method is:</p>
369
370 <pre class="code">
371   PixelWand *GetWandViewPixels(const WandView *wand_view)
372 </pre>
373
374 <p>A description of each parameter follows:</p>
375
376 <h5>wand_view</h5>
377 <p>the wand view.</p>
378
379  </div>
380 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewWand">GetWandViewWand</a></h2>
381 <div class="doc-section">
382
383 <p>GetWandViewWand() returns the magick wand associated with the wand view.</p>
384
385 <p>The format of the GetWandViewWand method is:</p>
386
387 <pre class="code">
388   MagickWand *GetWandViewWand(const WandView *wand_view)
389 </pre>
390
391 <p>A description of each parameter follows:</p>
392
393 <h5>wand_view</h5>
394 <p>the wand view.</p>
395
396  </div>
397 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="IsWandView">IsWandView</a></h2>
398 <div class="doc-section">
399
400 <p>IsWandView() returns MagickTrue if the the parameter is verified as a wand view object.</p>
401
402 <p>The format of the IsWandView method is:</p>
403
404 <pre class="code">
405   MagickBooleanType IsWandView(const WandView *wand_view)
406 </pre>
407
408 <p>A description of each parameter follows:</p>
409
410 <h5>wand_view</h5>
411 <p>the wand view.</p>
412
413  </div>
414 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandView">NewWandView</a></h2>
415 <div class="doc-section">
416
417 <p>NewWandView() returns a wand view required for all other methods in the Wand View API.</p>
418
419 <p>The format of the NewWandView method is:</p>
420
421 <pre class="code">
422   WandView *NewWandView(MagickWand *wand)
423 </pre>
424
425 <p>A description of each parameter follows:</p>
426
427 <h5>wand</h5>
428 <p>the wand.</p>
429
430  </div>
431 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandViewExtent">NewWandViewExtent</a></h2>
432 <div class="doc-section">
433
434 <p>NewWandViewExtent() returns a wand view required for all other methods in the Wand View API.</p>
435
436 <p>The format of the NewWandViewExtent method is:</p>
437
438 <pre class="code">
439   WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x,
440     const ssize_t y,const size_t width,const size_t height)
441 </pre>
442
443 <p>A description of each parameter follows:</p>
444
445 <h5>wand</h5>
446 <p>the magick wand.</p>
447
448 <h5>x,y,columns,rows</h5>
449 <p>These values define the perimeter of a extent of pixel_wands view.</p>
450
451  </div>
452 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewDescription">SetWandViewDescription</a></h2>
453 <div class="doc-section">
454
455 <p>SetWandViewDescription() associates a description with an image view.</p>
456
457 <p>The format of the SetWandViewDescription method is:</p>
458
459 <pre class="code">
460   void SetWandViewDescription(WandView *image_view,const char *description)
461 </pre>
462
463 <p>A description of each parameter follows:</p>
464
465 <h5>wand_view</h5>
466 <p>the wand view.</p>
467
468 <h5>description</h5>
469 <p>the wand view description.</p>
470
471  </div>
472 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewIterator">SetWandViewIterator</a></h2>
473 <div class="doc-section">
474
475 <p>SetWandViewIterator() iterates over the wand view in parallel and calls your set method for each scanline of the view.  The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension.  The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.</p>
476
477 <p>The callback signature is:</p>
478
479 <pre class="text">
480   MagickBooleanType SetImageViewMethod(ImageView *destination,
481     const ssize_t y,const int thread_id,void *context)
482 </pre>
483
484 <p>Use this pragma if the view is not single threaded:</p>
485
486 <pre class="text">
487       #pragma omp critical
488 </pre>
489
490 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
491
492 <p>The format of the SetWandViewIterator method is:</p>
493
494 <pre class="code">
495   MagickBooleanType SetWandViewIterator(WandView *destination,
496     SetWandViewMethod set,void *context)
497 </pre>
498
499 <p>A description of each parameter follows:</p>
500
501 <h5>destination</h5>
502 <p>the wand view.</p>
503
504 <h5>set</h5>
505 <p>the set callback method.</p>
506
507 <h5>context</h5>
508 <p>the user defined context.</p>
509
510  </div>
511 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewThreads">SetWandViewThreads</a></h2>
512 <div class="doc-section">
513
514 <p>SetWandViewThreads() sets the number of threads in a thread team.</p>
515
516 <p>The format of the SetWandViewDescription method is:</p>
517
518 <pre class="code">
519   void SetWandViewThreads(WandView *image_view,
520     const size_t number_threads)
521 </pre>
522
523 <p>A description of each parameter follows:</p>
524
525 <h5>image_view</h5>
526 <p>the image view.</p>
527
528 <h5>number_threads</h5>
529 <p>the number of threads in a thread team.</p>
530
531  </div>
532 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="TransferWandViewIterator">TransferWandViewIterator</a></h2>
533 <div class="doc-section">
534
535 <p>TransferWandViewIterator() iterates over two wand views in parallel and calls your transfer method for each scanline of the view.  The source pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination wand view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p>
536
537 <p>The callback signature is:</p>
538
539 <pre class="text">
540   MagickBooleanType TransferImageViewMethod(const WandView *source,
541     WandView *destination,const ssize_t y,const int thread_id,
542     void *context)
543 </pre>
544
545 <p>Use this pragma if the view is not single threaded:</p>
546
547 <pre class="text">
548       #pragma omp critical
549 </pre>
550
551 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
552
553 <p>The format of the TransferWandViewIterator method is:</p>
554
555 <pre class="code">
556   MagickBooleanType TransferWandViewIterator(WandView *source,
557     WandView *destination,TransferWandViewMethod transfer,void *context)
558 </pre>
559
560 <p>A description of each parameter follows:</p>
561
562 <h5>source</h5>
563 <p>the source wand view.</p>
564
565 <h5>destination</h5>
566 <p>the destination wand view.</p>
567
568 <h5>transfer</h5>
569 <p>the transfer callback method.</p>
570
571 <h5>context</h5>
572 <p>the user defined context.</p>
573
574  </div>
575 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="UpdateWandViewIterator">UpdateWandViewIterator</a></h2>
576 <div class="doc-section">
577
578 <p>UpdateWandViewIterator() iterates over the wand view in parallel and calls your update method for each scanline of the view.  The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.  Updates to pixels in your callback are automagically synced back to the image.</p>
579
580 <p>The callback signature is:</p>
581
582 <pre class="text">
583   MagickBooleanType UpdateImageViewMethod(WandView *source,const ssize_t y,
584     const int thread_id,void *context)
585 </pre>
586
587 <p>Use this pragma if the view is not single threaded:</p>
588
589 <pre class="text">
590       #pragma omp critical
591 </pre>
592
593 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
594
595 <p>The format of the UpdateWandViewIterator method is:</p>
596
597 <pre class="code">
598   MagickBooleanType UpdateWandViewIterator(WandView *source,
599     UpdateWandViewMethod update,void *context)
600 </pre>
601
602 <p>A description of each parameter follows:</p>
603
604 <h5>source</h5>
605 <p>the source wand view.</p>
606
607 <h5>update</h5>
608 <p>the update callback method.</p>
609
610 <h5>context</h5>
611 <p>the user defined context.</p>
612
613  </div>
614 \r
615 </div>\r
616 \r
617 <div id="linkbar">\r
618     <span id="linkbar-west">&nbsp;</span>\r
619     <span id="linkbar-center">\r
620       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
621       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
622     </span>\r
623     <span id="linkbar-east">&nbsp;</span>\r
624   </div>\r
625   <div class="footer">\r
626     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
627     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
628   </div>\r
629   <div style="clear: both; margin: 0; width: 100%; "></div>\r
630   <script type="text/javascript">\r
631     var _gaq = _gaq || [];\r
632     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
633     _gaq.push(['_trackPageview']);\r
634 \r
635     (function() {\r
636       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
637       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
638       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
639     })();\r
640   </script>\r
641 </body>\r
642 </html>\r