blob: 9e7a212efc80ef56c7df19bc967fb9c40ee8beac [file] [log] [blame]
cristydcca3fa2010-12-29 21:50:07 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
cristy2bd2a982011-02-15 00:52:58 +00003<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">
cristyd6dfc0d2010-06-27 19:30:49 +00008<head>
cristy3c98a4f2010-08-13 20:09:41 +00009 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
10 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +000011 <title>ImageMagick: MagickWand, C API for ImageMagick: Wand View Methods</title>
cristyd6dfc0d2010-06-27 19:30:49 +000012 <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"/>
cristy3c98a4f2010-08-13 20:09:41 +000015 <meta name="Application-name" content="ImageMagick"/>
cristyaf8d6652011-02-04 21:57:45 +000016 <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."/>
cristy3c98a4f2010-08-13 20:09:41 +000017 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristyd6dfc0d2010-06-27 19:30:49 +000018 <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"/>
cristyd6dfc0d2010-06-27 19:30:49 +000020 <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"/>
cristy4103d562010-12-10 01:38:54 +000026 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristyd6dfc0d2010-06-27 19:30:49 +000027 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000028 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000029 <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"/>
cristy7a40ba82011-01-08 20:31:18 +000031 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy3c98a4f2010-08-13 20:09:41 +000032 <style type="text/css" media="all">
33 @import url("../../www/magick.css");
34 </style>
cristydcca3fa2010-12-29 21:50:07 +000035 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000036 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
37 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
38 <script type="text/javascript">
39 $(document).ready(function() {
40 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
41 'transitionIn' : 'elastic',
42 'transitionOut' : 'elastic',
43 'overlayShow' : false,
44 'opacity' : true
45 });
46 });
47 </script>
cristyd6dfc0d2010-06-27 19:30:49 +000048</head>
49
50<body id="www-imagemagick-org">
51<div class="titlebar">
cristyb52981c2011-03-19 17:09:31 +000052<div style="margin: 17px auto; float: left;">
53 <script type="text/javascript">
54 <!--
55 google_ad_client = "pub-3129977114552745";
56 google_ad_slot = "5439289906";
57 google_ad_width = 728;
58 google_ad_height = 90;
59 //-->
60 </script>
61 <script type="text/javascript"
62 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
63 </script>
64</div>
cristyd6dfc0d2010-06-27 19:30:49 +000065<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000066 <img src="../../images/logo.jpg"
67 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000068 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristyd6dfc0d2010-06-27 19:30:49 +000069<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000070 <img src="../../images/sprite.jpg"
71 alt="ImageMagick Sprite"
cristyd6dfc0d2010-06-27 19:30:49 +000072 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
73</div>
74
cristyce69bb02010-07-27 19:49:46 +000075<div class="westbar">
cristyd6dfc0d2010-06-27 19:30:49 +000076
77<div class="menu">
78 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
79</div>
80<div class="sep"></div>
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">
cristyda16f162011-02-19 23:52:17 +000091 <a title="Binary Release: iPhone" href="../../www/binary-releases.html#iPhone">iPhone</a>
92</div>
93<div class="sub">
cristyd6dfc0d2010-06-27 19:30:49 +000094 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
95</div>
96<div class="sep"></div>
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">
cristydcca3fa2010-12-29 21:50:07 +0000122 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristyd6dfc0d2010-06-27 19:30:49 +0000123</div>
124<div class="sep"></div>
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>
144<div class="menu">
cristy52923442011-01-15 22:54:31 +0000145 <a title="Search" href="../../www/search.html">Search</a>
cristyd6dfc0d2010-06-27 19:30:49 +0000146</div>
147<div class="sep"></div>
148<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000149 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristyd6dfc0d2010-06-27 19:30:49 +0000150</div>
151<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000152 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristyd6dfc0d2010-06-27 19:30:49 +0000153</div>
154<div class="sep"></div>
155<div class="menu">
cristy10549a12011-05-15 19:04:46 +0000156 <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristyd6dfc0d2010-06-27 19:30:49 +0000157
cristyb52981c2011-03-19 17:09:31 +0000158<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>
cristyd6dfc0d2010-06-27 19:30:49 +0000161<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000162<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000163 <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
164</div>
165<div class="sponsor">
166 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
167</div>
168<div class="sponsor">
169 <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
170</div>
171<div class="sponsor">
cristy4bf6e232011-05-21 01:43:33 +0000172 <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
cristy45dbd322011-03-27 16:40:38 +0000173</div>
174<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000175 <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
cristy4c54bbb2011-03-17 13:53:13 +0000176</div>
177<div class="sponsor">
cristy575d5ee2011-05-24 01:59:01 +0000178 <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
cristy4bf6e232011-05-21 01:43:33 +0000179</div>
180<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000181 <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
cristyaf8d6652011-02-04 21:57:45 +0000182</div>
183<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000184 <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
cristy7d52cd62010-10-01 17:26:59 +0000185</div>
186<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000187 <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
cristyee742642011-02-26 02:49:59 +0000188</div>
189<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000190 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
cristy851dbce2010-08-06 21:40:00 +0000191</div>
cristyec6b4752011-01-08 03:16:23 +0000192<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000193 <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
cristybaacd172011-04-30 23:11:03 +0000194</div>
195<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000196 <a rel="follow" title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011080100030 autoteile-Carparts-->
cristyec6b4752011-01-08 03:16:23 +0000197</div>
cristyd6dfc0d2010-06-27 19:30:49 +0000198</div>
199</div>
cristyce69bb02010-07-27 19:49:46 +0000200</div>
cristyd6dfc0d2010-06-27 19:30:49 +0000201
cristyce69bb02010-07-27 19:49:46 +0000202<div class="eastbar">
cristyb52981c2011-03-19 17:09:31 +0000203
cristyd6dfc0d2010-06-27 19:30:49 +0000204</div>
205
206<div class="main">
207
cristy350dea42011-02-15 17:31:04 +0000208<h1>Module wand-view Methods</h1>
cristy6f77f692011-02-15 15:31:39 +0000209<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>
cristyd6dfc0d2010-06-27 19:30:49 +0000210
cristy350dea42011-02-15 17:31:04 +0000211<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="CloneWandView">CloneWandView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000212<div class="doc-section">
213
214<p>CloneWandView() makes a copy of the specified wand view.</p>
215
216<p>The format of the CloneWandView method is:</p>
217
218<pre class="code">
219 WandView *CloneWandView(const WandView *wand_view)
220</pre>
221
222<p>A description of each parameter follows:</p>
223
224<h5>wand_view</h5>
225<p>the wand view.</p>
226
227 </div>
cristy350dea42011-02-15 17:31:04 +0000228<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DestroyWandView">DestroyWandView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000229<div class="doc-section">
230
231<p>DestroyWandView() deallocates memory associated with a wand view.</p>
232
233<p>The format of the DestroyWandView method is:</p>
234
235<pre class="code">
236 WandView *DestroyWandView(WandView *wand_view)
237</pre>
238
239<p>A description of each parameter follows:</p>
240
241<h5>wand_view</h5>
242<p>the wand view.</p>
243
244 </div>
cristy350dea42011-02-15 17:31:04 +0000245<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000246<div class="doc-section">
247
248<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>
249
250<p>The callback signature is:</p>
251
252<pre class="text">
253 MagickBooleanType DuplexTransferImageViewMethod(const WandView *source,
254 const WandView *duplex,WandView *destination,const ssize_t y,
255 const int thread_id,void *context)
256</pre>
257
258<p>Use this pragma if the view is not single threaded:</p>
259
260<pre class="text">
261 #pragma omp critical
262</pre>
263
264<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
265
266<p>The format of the DuplexTransferWandViewIterator method is:</p>
267
268<pre class="code">
269 MagickBooleanType DuplexTransferWandViewIterator(WandView *source,
270 WandView *duplex,WandView *destination,
271 DuplexTransferWandViewMethod transfer,void *context)
272</pre>
273
274<p>A description of each parameter follows:</p>
275
276<h5>source</h5>
277<p>the source wand view.</p>
278
279<h5>duplex</h5>
280<p>the duplex wand view.</p>
281
282<h5>destination</h5>
283<p>the destination wand view.</p>
284
285<h5>transfer</h5>
286<p>the transfer callback method.</p>
287
288<h5>context</h5>
289<p>the user defined context.</p>
290
291 </div>
cristy350dea42011-02-15 17:31:04 +0000292<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewException">GetWandViewException</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000293<div class="doc-section">
294
295<p>GetWandViewException() returns the severity, reason, and description of any error that occurs when utilizing a wand view.</p>
296
297<p>The format of the GetWandViewException method is:</p>
298
299<pre class="code">
300 char *GetWandViewException(const PixelWand *wand_view,
301 ExceptionType *severity)
302</pre>
303
304<p>A description of each parameter follows:</p>
305
306<h5>wand_view</h5>
307<p>the pixel wand_view.</p>
308
309<h5>severity</h5>
310<p>the severity of the error is returned here.</p>
311
312 </div>
cristy350dea42011-02-15 17:31:04 +0000313<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewExtent">GetWandViewExtent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000314<div class="doc-section">
315
316<p>GetWandViewExtent() returns the wand view extent.</p>
317
318<p>The format of the GetWandViewExtent method is:</p>
319
320<pre class="code">
321 RectangleInfo GetWandViewExtent(const WandView *wand_view)
322</pre>
323
324<p>A description of each parameter follows:</p>
325
326<h5>wand_view</h5>
327<p>the wand view.</p>
328
329 </div>
cristy350dea42011-02-15 17:31:04 +0000330<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewIterator">GetWandViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000331<div class="doc-section">
332
333<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>
334
335<p>The callback signature is:</p>
336
337<pre class="text">
338 MagickBooleanType GetImageViewMethod(const WandView *source,
339 const ssize_t y,const int thread_id,void *context)
340</pre>
341
342<p>Use this pragma if the view is not single threaded:</p>
343
344<pre class="text">
345 #pragma omp critical
346</pre>
347
348<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
349
350<p>The format of the GetWandViewIterator method is:</p>
351
352<pre class="code">
353 MagickBooleanType GetWandViewIterator(WandView *source,
354 GetWandViewMethod get,void *context)
355</pre>
356
357<p>A description of each parameter follows:</p>
358
359<h5>source</h5>
360<p>the source wand view.</p>
361
362<h5>get</h5>
363<p>the get callback method.</p>
364
365<h5>context</h5>
366<p>the user defined context.</p>
367
368 </div>
cristy350dea42011-02-15 17:31:04 +0000369<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewPixels">GetWandViewPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000370<div class="doc-section">
371
372<p>GetWandViewPixels() returns the wand view pixel_wands.</p>
373
374<p>The format of the GetWandViewPixels method is:</p>
375
376<pre class="code">
377 PixelWand *GetWandViewPixels(const WandView *wand_view)
378</pre>
379
380<p>A description of each parameter follows:</p>
381
382<h5>wand_view</h5>
383<p>the wand view.</p>
384
385 </div>
cristy350dea42011-02-15 17:31:04 +0000386<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewWand">GetWandViewWand</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000387<div class="doc-section">
388
389<p>GetWandViewWand() returns the magick wand associated with the wand view.</p>
390
391<p>The format of the GetWandViewWand method is:</p>
392
393<pre class="code">
394 MagickWand *GetWandViewWand(const WandView *wand_view)
395</pre>
396
397<p>A description of each parameter follows:</p>
398
399<h5>wand_view</h5>
400<p>the wand view.</p>
401
402 </div>
cristy350dea42011-02-15 17:31:04 +0000403<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="IsWandView">IsWandView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000404<div class="doc-section">
405
406<p>IsWandView() returns MagickTrue if the the parameter is verified as a wand view object.</p>
407
408<p>The format of the IsWandView method is:</p>
409
410<pre class="code">
411 MagickBooleanType IsWandView(const WandView *wand_view)
412</pre>
413
414<p>A description of each parameter follows:</p>
415
416<h5>wand_view</h5>
417<p>the wand view.</p>
418
419 </div>
cristy350dea42011-02-15 17:31:04 +0000420<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandView">NewWandView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000421<div class="doc-section">
422
423<p>NewWandView() returns a wand view required for all other methods in the Wand View API.</p>
424
425<p>The format of the NewWandView method is:</p>
426
427<pre class="code">
428 WandView *NewWandView(MagickWand *wand)
429</pre>
430
431<p>A description of each parameter follows:</p>
432
433<h5>wand</h5>
434<p>the wand.</p>
435
436 </div>
cristy350dea42011-02-15 17:31:04 +0000437<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandViewExtent">NewWandViewExtent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000438<div class="doc-section">
439
440<p>NewWandViewExtent() returns a wand view required for all other methods in the Wand View API.</p>
441
442<p>The format of the NewWandViewExtent method is:</p>
443
444<pre class="code">
445 WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x,
446 const ssize_t y,const size_t width,const size_t height)
447</pre>
448
449<p>A description of each parameter follows:</p>
450
451<h5>wand</h5>
452<p>the magick wand.</p>
453
454<h5>x,y,columns,rows</h5>
455<p>These values define the perimeter of a extent of pixel_wands view.</p>
456
457 </div>
cristy350dea42011-02-15 17:31:04 +0000458<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewDescription">SetWandViewDescription</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000459<div class="doc-section">
460
461<p>SetWandViewDescription() associates a description with an image view.</p>
462
463<p>The format of the SetWandViewDescription method is:</p>
464
465<pre class="code">
466 void SetWandViewDescription(WandView *image_view,const char *description)
467</pre>
468
469<p>A description of each parameter follows:</p>
470
471<h5>wand_view</h5>
472<p>the wand view.</p>
473
474<h5>description</h5>
475<p>the wand view description.</p>
476
477 </div>
cristy350dea42011-02-15 17:31:04 +0000478<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewIterator">SetWandViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000479<div class="doc-section">
480
481<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>
482
483<p>The callback signature is:</p>
484
485<pre class="text">
486 MagickBooleanType SetImageViewMethod(ImageView *destination,
487 const ssize_t y,const int thread_id,void *context)
488</pre>
489
490<p>Use this pragma if the view is not single threaded:</p>
491
492<pre class="text">
493 #pragma omp critical
494</pre>
495
496<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
497
498<p>The format of the SetWandViewIterator method is:</p>
499
500<pre class="code">
501 MagickBooleanType SetWandViewIterator(WandView *destination,
502 SetWandViewMethod set,void *context)
503</pre>
504
505<p>A description of each parameter follows:</p>
506
507<h5>destination</h5>
508<p>the wand view.</p>
509
510<h5>set</h5>
511<p>the set callback method.</p>
512
513<h5>context</h5>
514<p>the user defined context.</p>
515
516 </div>
cristy350dea42011-02-15 17:31:04 +0000517<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewThreads">SetWandViewThreads</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000518<div class="doc-section">
519
520<p>SetWandViewThreads() sets the number of threads in a thread team.</p>
521
522<p>The format of the SetWandViewDescription method is:</p>
523
524<pre class="code">
525 void SetWandViewThreads(WandView *image_view,
526 const size_t number_threads)
527</pre>
528
529<p>A description of each parameter follows:</p>
530
531<h5>image_view</h5>
532<p>the image view.</p>
533
534<h5>number_threads</h5>
535<p>the number of threads in a thread team.</p>
536
537 </div>
cristy350dea42011-02-15 17:31:04 +0000538<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="TransferWandViewIterator">TransferWandViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000539<div class="doc-section">
540
541<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>
542
543<p>The callback signature is:</p>
544
545<pre class="text">
546 MagickBooleanType TransferImageViewMethod(const WandView *source,
547 WandView *destination,const ssize_t y,const int thread_id,
548 void *context)
549</pre>
550
551<p>Use this pragma if the view is not single threaded:</p>
552
553<pre class="text">
554 #pragma omp critical
555</pre>
556
557<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
558
559<p>The format of the TransferWandViewIterator method is:</p>
560
561<pre class="code">
562 MagickBooleanType TransferWandViewIterator(WandView *source,
563 WandView *destination,TransferWandViewMethod transfer,void *context)
564</pre>
565
566<p>A description of each parameter follows:</p>
567
568<h5>source</h5>
569<p>the source wand view.</p>
570
571<h5>destination</h5>
572<p>the destination wand view.</p>
573
574<h5>transfer</h5>
575<p>the transfer callback method.</p>
576
577<h5>context</h5>
578<p>the user defined context.</p>
579
580 </div>
cristy350dea42011-02-15 17:31:04 +0000581<h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="UpdateWandViewIterator">UpdateWandViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000582<div class="doc-section">
583
584<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>
585
586<p>The callback signature is:</p>
587
588<pre class="text">
589 MagickBooleanType UpdateImageViewMethod(WandView *source,const ssize_t y,
590 const int thread_id,void *context)
591</pre>
592
593<p>Use this pragma if the view is not single threaded:</p>
594
595<pre class="text">
596 #pragma omp critical
597</pre>
598
599<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
600
601<p>The format of the UpdateWandViewIterator method is:</p>
602
603<pre class="code">
604 MagickBooleanType UpdateWandViewIterator(WandView *source,
605 UpdateWandViewMethod update,void *context)
606</pre>
607
608<p>A description of each parameter follows:</p>
609
610<h5>source</h5>
611<p>the source wand view.</p>
612
613<h5>update</h5>
614<p>the update callback method.</p>
615
616<h5>context</h5>
617<p>the user defined context.</p>
618
619 </div>
cristyd6dfc0d2010-06-27 19:30:49 +0000620
621</div>
622
623<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000624 <span id="linkbar-west">&nbsp;</span>
cristyd6dfc0d2010-06-27 19:30:49 +0000625 <span id="linkbar-center">
626 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000627 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristyd6dfc0d2010-06-27 19:30:49 +0000628 </span>
629 <span id="linkbar-east">&nbsp;</span>
630 </div>
631 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000632 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristyd6dfc0d2010-06-27 19:30:49 +0000633 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
634 </div>
635 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000636 <script type="text/javascript">
637 var _gaq = _gaq || [];
638 _gaq.push(['_setAccount', 'UA-17690367-1']);
639 _gaq.push(['_trackPageview']);
640
641 (function() {
642 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
643 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
644 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
645 })();
646 </script>
cristyd6dfc0d2010-06-27 19:30:49 +0000647</body>
648</html>