]> granicus.if.org Git - imagemagick/blob - www/api/wand-view.html
edf0b4a43ca320d600469a374046a8e7c54795eb
[imagemagick] / www / api / wand-view.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
2   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html version="-//W3C//DTD XHTML 1.1//EN"
4       xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
5       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6       xsi:schemaLocation="http://www.w3.org/1999/xhtml
7                           http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
8 <head>
9   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
10   <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>
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 automagically."/>
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, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"/>
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-2012 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="canonical" href="http://www.imagemagick.org" />
31   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
32   <!-- Add jQuery library -->
33   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
34   
35   <!-- Optionaly include easing and/or mousewheel plugins -->
36   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.easing-1.3.pack.js"></script>
37   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.mousewheel-3.0.6.pack.js"></script>
38   
39   <!-- Add fancyBox -->
40   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/jquery.fancybox.css?v=2.0.4" type="text/css" media="screen" />
41   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.fancybox.pack.js?v=2.0.4"></script>
42   
43   <!-- Optionaly include button and/or thumbnail helpers -->
44   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.css?v=2.0.4" type="text/css" media="screen" />
45   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.js?v=2.0.4"></script>
46   
47   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.css?v=2.0.4" type="text/css" media="screen" />
48   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.js?v=2.0.4"></script>
49   <script type="text/javascript">
50         $(document).ready(function() {
51                 $(".fancybox").fancybox();
52         });
53   </script>
54   <!-- ImageMagick style -->
55   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
56   <style type="text/css" media="all">
57     @import url("../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick.css");
58   </style>
59 </head>
60
61 <body id="www-imagemagick-org">
62 <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>
72   <script type="text/javascript"
73     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
74   </script>
75 </div>
76 <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../discourse-server">
77   <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/logo.jpg"
78   alt="ImageMagick Logo"
79   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
80 <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../index.html">
81   <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/sprite.jpg"
82   alt="ImageMagick Sprite"
83   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
84 </div>
85
86 <div class="westbar">
87
88 <div class="menu">
89   <a title="About ImageMagick" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../index.html">About ImageMagick</a>
90 </div>
91 <div class="menu">
92   <a title="Binary Releases" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html">Binary Releases</a>
93 </div>
94 <div class="sub">
95     <a title="Binary Release: Unix" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#unix">Unix</a>
96 </div>
97 <div class="sub">
98     <a title="Binary Release: MacOS X" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#macosx">Mac OS X</a>
99 </div>
100 <div class="sub">
101     <a title="Binary Release: iOS" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#iOS">iOS</a>
102 </div>
103 <div class="sub">
104     <a title="Binary Release: Windows" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#windows">Windows</a>
105 </div>
106 <div class="sep"></div>
107 <div class="menu">
108   <a title="Command-line Tools" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-tools.html">Command-line Tools</a>
109 </div>
110 <div class="sub">
111     <a title="Command-line Tools: Processing" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-processing.html">Processing</a>
112 </div>
113 <div class="sub">
114     <a title="Command-line Tools: Options" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-options.html">Options</a>
115 </div>
116 <div class="sub">
117     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
118 </div>
119 <div class="menu">
120   <a title="Program Interfaces" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/api.html">Program Interfaces</a>
121 </div>
122 <div class="sub">
123     <a title="Program Interface: MagickWand" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick-wand.html">MagickWand</a>
124 </div>
125 <div class="sub">
126     <a title="Program Interface: MagickCore" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick-core.html">MagickCore</a>
127 </div>
128 <div class="sub">
129     <a title="Program Interface: PerlMagick" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/perl-magick.html">PerlMagick</a>
130 </div>
131 <div class="sub">
132     <a title="Program Interface: Magick++" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick++.html">Magick++</a>
133 </div>
134 <div class="sep"></div>
135 <div  class="menu">
136    <a title="Install from Source" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html">Install from Source</a>
137 </div>
138 <div class="sub">
139     <a title="Install from Source: Unix" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html#unix">Unix</a>
140 </div>
141 <div class="sub">
142     <a title="Install from Source: Windows" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html#windows">Windows</a>
143  </div>
144 <div class="menu">
145   <a title="Resources" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/resources.html">Resources</a>
146 </div>
147 <div class="menu">
148   <a title="Architecture" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/architecture.html">Architecture</a>
149 </div>
150 <div class="menu">
151   <a title="Download" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/download.html">Download</a>
152 </div>
153 <div class="sep"></div>
154 <div class="menu">
155   <a title="Search" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/search.html">Search</a>
156 </div>
157 <div class="sep"></div>
158 <div class="menu">
159   <a title="Site Map" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/sitemap.html">Site Map</a>
160 </div>
161 <div  class="sub">
162   <a title="Site Map: Links" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/links.html">Links</a>
163 </div>
164 <div class="sep"></div>
165 <div class="menu">
166   <a rel="follow" title="Sponsors" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/sponsors.html">Sponsors:</a>
167
168   <a href="http://www.networkredux.com"> <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/networkredux.png" width="140" height="31" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
169   <a href="http://www.dinodirect.com/ipads-tablets/"> <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/dino-direct.jpg" width="140" height="90" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a><!-- 201208010120 mickey@163... -->
170 <div class="sponsbox">
171 <div class="sponsor">
172   <a rel="follow" title="Sponsor: The Fastest &amp; Easiest Way to Find Images" href="http://www.graphicsfactory.com">The Fastest &amp; Easiest Way to Find Images</a><!-- 201210010270 graphicsfac... -->
173 </div>
174 <div class="sponsor">
175   <a rel="follow" title="Sponsor: VPS" href="http://www.interdominios.com/vps">VPS</a><!-- 201209010090 barsh@inter... -->
176 </div>
177 <div class="sponsor">
178   <a rel="follow" title="Werbebanner Werbeplane" href="http://www.allesbanner.de">Werbebanner Werbeplane</a><!-- 201212010450 info@druck... -->
179 </div>
180 <div class="sponsor">
181   <a rel="follow" title="Entertainment News &amp; Photos" href="http://www.zimbio.com">Entertainment News &amp; Photos</a><!-- 201211010540 bd@zimb... -->
182 </div>
183 <div class="sponsor">
184   <a rel="follow" title="Sponsor: LED24" href="http://led24.de/">LED24</a><!-- 201207010270 info@led24... -->
185 </div>
186 <div class="sponsor">
187   <a rel="follow" title="Sponsor: Best Website Hosting" href="http://www.top-cheap-web-hosting.com">Best Website Hosting</a><!-- 201304010090 eunge.liu-->
188 </div>
189 <div class="sponsor">
190   <a rel="follow" title="Android Tablet" href="http://www.dinodirect.com/ipads-tablets/">Android Tablet</a><!-- 201208010120 mickey@163... -->
191 </div>
192 <div class="sponsor">
193   <a rel="follow" title="Sponsor: Web Site Hosting" href="http://webhostinggeeks.com">Web Site Hosting</a><!-- 201302010900 funds@enmob... -->
194 </div>
195 <div class="sponsor">
196    <a rel="follow" title="Sponsor: Premium Quality Stock Photos" href="http://www.f1online.pro/en/">Premium Quality Stock Photos</a><!-- 2012080100540 ... -->
197 </div>
198 <div class="sponsor">
199    <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 2012070100250 ... -->
200 </div>
201 <div class="sponsor">
202   <a rel="follow" title="Sponsor: Managed Server" href="http://www.robhost.de">Managed Server</a><!-- 201210010720 klikics... -->
203 </div>
204 <div class="sponsor">
205   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
206 </div>
207 <div class="sponsor">
208    <a rel="follow" title="Sponsor: Notebook Reparatur" href="http://www.notebook-reparaturen-berlin.de">Notebook Reparatur</a><!-- 2012080100300 atlas-multimedia-->
209 </div>
210 <div class="sponsor">
211    <a rel="follow" title="Sponsor: Web Hosting" href="http://www.hostucan.com">Web Hosting</a><!-- 2012120100150 racent marketing@webhosting...-->
212 </div>
213 </div>
214 </div>
215 </div>
216
217 <div class="eastbar">
218   <div class="g-plusone" id="gplusone"></div>
219   <script type="text/javascript">
220     window.___gcfg = {
221       lang: 'en-US'
222     };
223
224     (function() {
225       var po = document.createElement('script');
226       po.type = 'text/javascript'; po.async = true;
227       po.src = 'https://apis.google.com/js/plusone.js';
228       var script = document.getElementsByTagName('script')[0];
229       script.parentNode.insertBefore(po, script);
230     })();
231     var gplusone = document.getElementById("gplusone");
232     gplusone.setAttribute("data-size","medium");
233     gplusone.setAttribute("data-count","false");
234   </script>
235 </div>
236
237 <div class="main">
238
239 <h1>Module wand-view Methods</h1>
240 <p class="navigation-index">[<a href="wand-view.html#CloneWandView">CloneWandView</a> &bull; <a href="wand-view.html#DestroyWandView">DestroyWandView</a> &bull; <a href="wand-view.html#DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a> &bull; <a href="wand-view.html#GetWandViewException">GetWandViewException</a> &bull; <a href="wand-view.html#GetWandViewExtent">GetWandViewExtent</a> &bull; <a href="wand-view.html#GetWandViewIterator">GetWandViewIterator</a> &bull; <a href="wand-view.html#GetWandViewPixels">GetWandViewPixels</a> &bull; <a href="wand-view.html#GetWandViewWand">GetWandViewWand</a> &bull; <a href="wand-view.html#IsWandView">IsWandView</a> &bull; <a href="wand-view.html#NewWandView">NewWandView</a> &bull; <a href="wand-view.html#NewWandViewExtent">NewWandViewExtent</a> &bull; <a href="wand-view.html#SetWandViewDescription">SetWandViewDescription</a> &bull; <a href="wand-view.html#SetWandViewIterator">SetWandViewIterator</a> &bull; <a href="wand-view.html#SetWandViewThreads">SetWandViewThreads</a> &bull; <a href="wand-view.html#TransferWandViewIterator">TransferWandViewIterator</a> &bull; <a href="wand-view.html#UpdateWandViewIterator">UpdateWandViewIterator</a>]</p>
241
242 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="CloneWandView">CloneWandView</a></h2>
243 <div class="doc-section">
244
245 <p>CloneWandView() makes a copy of the specified wand view.</p>
246
247 <p>The format of the CloneWandView method is:</p>
248
249 <pre class="code">
250   WandView *CloneWandView(const WandView *wand_view)
251 </pre>
252
253 <p>A description of each parameter follows:</p>
254
255 <h5>wand_view</h5>
256 <p>the wand view.</p>
257
258  </div>
259 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DestroyWandView">DestroyWandView</a></h2>
260 <div class="doc-section">
261
262 <p>DestroyWandView() deallocates memory associated with a wand view.</p>
263
264 <p>The format of the DestroyWandView method is:</p>
265
266 <pre class="code">
267   WandView *DestroyWandView(WandView *wand_view)
268 </pre>
269
270 <p>A description of each parameter follows:</p>
271
272 <h5>wand_view</h5>
273 <p>the wand view.</p>
274
275  </div>
276 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a></h2>
277 <div class="doc-section">
278
279 <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>
280
281 <p>The callback signature is:</p>
282
283 <pre class="text">
284   MagickBooleanType DuplexTransferImageViewMethod(const WandView *source,
285     const WandView *duplex,WandView *destination,const ssize_t y,
286     const int thread_id,void *context)
287 </pre>
288
289 <p>Use this pragma if the view is not single threaded:</p>
290
291 <pre class="text">
292       #pragma omp critical
293 </pre>
294
295 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
296
297 <p>The format of the DuplexTransferWandViewIterator method is:</p>
298
299 <pre class="code">
300   MagickBooleanType DuplexTransferWandViewIterator(WandView *source,
301     WandView *duplex,WandView *destination,
302     DuplexTransferWandViewMethod transfer,void *context)
303 </pre>
304
305 <p>A description of each parameter follows:</p>
306
307 <h5>source</h5>
308 <p>the source wand view.</p>
309
310 <h5>duplex</h5>
311 <p>the duplex wand view.</p>
312
313 <h5>destination</h5>
314 <p>the destination wand view.</p>
315
316 <h5>transfer</h5>
317 <p>the transfer callback method.</p>
318
319 <h5>context</h5>
320 <p>the user defined context.</p>
321
322  </div>
323 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewException">GetWandViewException</a></h2>
324 <div class="doc-section">
325
326 <p>GetWandViewException() returns the severity, reason, and description of any error that occurs when utilizing a wand view.</p>
327
328 <p>The format of the GetWandViewException method is:</p>
329
330 <pre class="code">
331   char *GetWandViewException(const WandView *wand_view,
332     ExceptionType *severity)
333 </pre>
334
335 <p>A description of each parameter follows:</p>
336
337 <h5>wand_view</h5>
338 <p>the pixel wand_view.</p>
339
340 <h5>severity</h5>
341 <p>the severity of the error is returned here.</p>
342
343  </div>
344 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewExtent">GetWandViewExtent</a></h2>
345 <div class="doc-section">
346
347 <p>GetWandViewExtent() returns the wand view extent.</p>
348
349 <p>The format of the GetWandViewExtent method is:</p>
350
351 <pre class="code">
352   RectangleInfo GetWandViewExtent(const WandView *wand_view)
353 </pre>
354
355 <p>A description of each parameter follows:</p>
356
357 <h5>wand_view</h5>
358 <p>the wand view.</p>
359
360  </div>
361 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewIterator">GetWandViewIterator</a></h2>
362 <div class="doc-section">
363
364 <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>
365
366 <p>The callback signature is:</p>
367
368 <pre class="text">
369   MagickBooleanType GetImageViewMethod(const WandView *source,
370     const ssize_t y,const int thread_id,void *context)
371 </pre>
372
373 <p>Use this pragma if the view is not single threaded:</p>
374
375 <pre class="text">
376       #pragma omp critical
377 </pre>
378
379 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
380
381 <p>The format of the GetWandViewIterator method is:</p>
382
383 <pre class="code">
384   MagickBooleanType GetWandViewIterator(WandView *source,
385     GetWandViewMethod get,void *context)
386 </pre>
387
388 <p>A description of each parameter follows:</p>
389
390 <h5>source</h5>
391 <p>the source wand view.</p>
392
393 <h5>get</h5>
394 <p>the get callback method.</p>
395
396 <h5>context</h5>
397 <p>the user defined context.</p>
398
399  </div>
400 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewPixels">GetWandViewPixels</a></h2>
401 <div class="doc-section">
402
403 <p>GetWandViewPixels() returns the wand view pixel_wands.</p>
404
405 <p>The format of the GetWandViewPixels method is:</p>
406
407 <pre class="code">
408   PixelWand *GetWandViewPixels(const WandView *wand_view)
409 </pre>
410
411 <p>A description of each parameter follows:</p>
412
413 <h5>wand_view</h5>
414 <p>the wand view.</p>
415
416  </div>
417 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewWand">GetWandViewWand</a></h2>
418 <div class="doc-section">
419
420 <p>GetWandViewWand() returns the magick wand associated with the wand view.</p>
421
422 <p>The format of the GetWandViewWand method is:</p>
423
424 <pre class="code">
425   MagickWand *GetWandViewWand(const WandView *wand_view)
426 </pre>
427
428 <p>A description of each parameter follows:</p>
429
430 <h5>wand_view</h5>
431 <p>the wand view.</p>
432
433  </div>
434 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="IsWandView">IsWandView</a></h2>
435 <div class="doc-section">
436
437 <p>IsWandView() returns MagickTrue if the the parameter is verified as a wand view object.</p>
438
439 <p>The format of the IsWandView method is:</p>
440
441 <pre class="code">
442   MagickBooleanType IsWandView(const WandView *wand_view)
443 </pre>
444
445 <p>A description of each parameter follows:</p>
446
447 <h5>wand_view</h5>
448 <p>the wand view.</p>
449
450  </div>
451 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandView">NewWandView</a></h2>
452 <div class="doc-section">
453
454 <p>NewWandView() returns a wand view required for all other methods in the Wand View API.</p>
455
456 <p>The format of the NewWandView method is:</p>
457
458 <pre class="code">
459   WandView *NewWandView(MagickWand *wand)
460 </pre>
461
462 <p>A description of each parameter follows:</p>
463
464 <h5>wand</h5>
465 <p>the wand.</p>
466
467  </div>
468 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandViewExtent">NewWandViewExtent</a></h2>
469 <div class="doc-section">
470
471 <p>NewWandViewExtent() returns a wand view required for all other methods in the Wand View API.</p>
472
473 <p>The format of the NewWandViewExtent method is:</p>
474
475 <pre class="code">
476   WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x,
477     const ssize_t y,const size_t width,const size_t height)
478 </pre>
479
480 <p>A description of each parameter follows:</p>
481
482 <h5>wand</h5>
483 <p>the magick wand.</p>
484
485 <h5>x,y,columns,rows</h5>
486 <p>These values define the perimeter of a extent of pixel_wands view.</p>
487
488  </div>
489 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewDescription">SetWandViewDescription</a></h2>
490 <div class="doc-section">
491
492 <p>SetWandViewDescription() associates a description with an image view.</p>
493
494 <p>The format of the SetWandViewDescription method is:</p>
495
496 <pre class="code">
497   void SetWandViewDescription(WandView *image_view,const char *description)
498 </pre>
499
500 <p>A description of each parameter follows:</p>
501
502 <h5>wand_view</h5>
503 <p>the wand view.</p>
504
505 <h5>description</h5>
506 <p>the wand view description.</p>
507
508  </div>
509 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewIterator">SetWandViewIterator</a></h2>
510 <div class="doc-section">
511
512 <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>
513
514 <p>The callback signature is:</p>
515
516 <pre class="text">
517   MagickBooleanType SetImageViewMethod(ImageView *destination,
518     const ssize_t y,const int thread_id,void *context)
519 </pre>
520
521 <p>Use this pragma if the view is not single threaded:</p>
522
523 <pre class="text">
524       #pragma omp critical
525 </pre>
526
527 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
528
529 <p>The format of the SetWandViewIterator method is:</p>
530
531 <pre class="code">
532   MagickBooleanType SetWandViewIterator(WandView *destination,
533     SetWandViewMethod set,void *context)
534 </pre>
535
536 <p>A description of each parameter follows:</p>
537
538 <h5>destination</h5>
539 <p>the wand view.</p>
540
541 <h5>set</h5>
542 <p>the set callback method.</p>
543
544 <h5>context</h5>
545 <p>the user defined context.</p>
546
547  </div>
548 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewThreads">SetWandViewThreads</a></h2>
549 <div class="doc-section">
550
551 <p>SetWandViewThreads() sets the number of threads in a thread team.</p>
552
553 <p>The format of the SetWandViewDescription method is:</p>
554
555 <pre class="code">
556   void SetWandViewThreads(WandView *image_view,
557     const size_t number_threads)
558 </pre>
559
560 <p>A description of each parameter follows:</p>
561
562 <h5>image_view</h5>
563 <p>the image view.</p>
564
565 <h5>number_threads</h5>
566 <p>the number of threads in a thread team.</p>
567
568  </div>
569 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="TransferWandViewIterator">TransferWandViewIterator</a></h2>
570 <div class="doc-section">
571
572 <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>
573
574 <p>The callback signature is:</p>
575
576 <pre class="text">
577   MagickBooleanType TransferImageViewMethod(const WandView *source,
578     WandView *destination,const ssize_t y,const int thread_id,
579     void *context)
580 </pre>
581
582 <p>Use this pragma if the view is not single threaded:</p>
583
584 <pre class="text">
585       #pragma omp critical
586 </pre>
587
588 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
589
590 <p>The format of the TransferWandViewIterator method is:</p>
591
592 <pre class="code">
593   MagickBooleanType TransferWandViewIterator(WandView *source,
594     WandView *destination,TransferWandViewMethod transfer,void *context)
595 </pre>
596
597 <p>A description of each parameter follows:</p>
598
599 <h5>source</h5>
600 <p>the source wand view.</p>
601
602 <h5>destination</h5>
603 <p>the destination wand view.</p>
604
605 <h5>transfer</h5>
606 <p>the transfer callback method.</p>
607
608 <h5>context</h5>
609 <p>the user defined context.</p>
610
611  </div>
612 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="UpdateWandViewIterator">UpdateWandViewIterator</a></h2>
613 <div class="doc-section">
614
615 <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>
616
617 <p>The callback signature is:</p>
618
619 <pre class="text">
620   MagickBooleanType UpdateImageViewMethod(WandView *source,const ssize_t y,
621     const int thread_id,void *context)
622 </pre>
623
624 <p>Use this pragma if the view is not single threaded:</p>
625
626 <pre class="text">
627       #pragma omp critical
628 </pre>
629
630 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
631
632 <p>The format of the UpdateWandViewIterator method is:</p>
633
634 <pre class="code">
635   MagickBooleanType UpdateWandViewIterator(WandView *source,
636     UpdateWandViewMethod update,void *context)
637 </pre>
638
639 <p>A description of each parameter follows:</p>
640
641 <h5>source</h5>
642 <p>the source wand view.</p>
643
644 <h5>update</h5>
645 <p>the update callback method.</p>
646
647 <h5>context</h5>
648 <p>the user defined context.</p>
649
650  </div>
651
652 </div>
653
654 <div id="linkbar">
655     <span id="linkbar-west">&nbsp;</span>
656     <span id="linkbar-center">
657       <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../discourse-server">Discourse Server</a> &bull;
658       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
659     </span>
660     <span id="linkbar-east">&nbsp;</span>
661   </div>
662   <div class="footer">
663     <span id="footer-west">&copy; 1999-2012 ImageMagick Studio LLC</span>
664     <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
665   </div>
666   <div style="clear: both; margin: 0; width: 100%; "></div>
667   <script type="text/javascript">
668     var _gaq = _gaq || [];
669     _gaq.push(['_setAccount', 'UA-17690367-1']);
670     _gaq.push(['_trackPageview']);
671
672     (function() {
673       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
674       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
675       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
676     })();
677   </script>
678 </body>
679 </html>