]> granicus.if.org Git - imagemagick/blob - www/api/image-view.html
(no commit message)
[imagemagick] / www / api / image-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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">\r
4 <head>\r
5   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
6   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
7   <title>ImageMagick: MagickCore, C API for ImageMagick: Image View Methods</title>
8   <meta http-equiv="Content-Language" content="en-US"/>
9   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10   <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
11   <meta name="Application-name" content="ImageMagick"/>
12   <meta name="Description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images in a variety of formats. Use ImageMagick to scale, rotate, shear, distort and transform images."/>
13   <meta name="Application-url" content="http://www.imagemagick.org"/>
14   <meta name="Generator" content="PHP"/>
15   <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, image, view, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
16   <meta name="Rating" content="GENERAL"/>
17   <meta name="Robots" content="INDEX, FOLLOW"/>
18   <meta name="Generator" content="ImageMagick Studio LLC"/>
19   <meta name="Author" content="ImageMagick Studio LLC"/>
20   <meta name="Revisit-after" content="2 DAYS"/>
21   <meta name="Resource-type" content="document"/>
22   <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
23   <meta name="Distribution" content="Global"/>
24   <link rel="icon" href="../../images/wand.png"/>
25   <link rel="shortcut icon" href="../../images/wand.ico"  type="images/x-icon"/>
26   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
27   <style type="text/css" media="all">\r
28     @import url("../../www/magick.css");\r
29   </style>\r
30   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
31   <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
32   <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
33   <script type="text/javascript">\r
34     $(document).ready(function() {\r
35       $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
36         'transitionIn'  : 'elastic',\r
37         'transitionOut' : 'elastic',\r
38         'overlayShow'   : false,\r
39         'opacity'       : true\r
40       });\r
41     });\r
42   </script>\r
43 </head>\r
44 \r
45 <body id="www-imagemagick-org">\r
46 <div class="titlebar">\r
47 <a href="../../index.html">\r
48   <img src="../../images/script.png" alt="[ImageMagick]"\r
49   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
50 <a href="http://www.networkredux.com">\r
51   <img src="../../images/networkredux.png" alt="[sponsor]"\r
52   style="margin: 45px auto; border: 0px; float: left;" /></a>\r
53 <a href="http://www.imagemagick.org/discourse-server/">\r
54   <img src="../../images/logo.jpg" alt=""\r
55   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
56 <a href="../../index.html">\r
57   <img src="../../images/sprite.jpg" alt=""\r
58   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
59 </div>\r
60 \r
61 <div class="westbar">\r
62 \r
63 <div class="menu">
64   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
65 </div>
66 <div class="sep"></div>\r
67 <div class="menu">
68   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
69 </div>
70 <div class="sub">
71     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
72 </div>
73 <div class="sub">
74     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
75 </div>
76 <div class="sub">
77     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
78 </div>
79 <div class="sep"></div>\r
80 <div class="menu">
81   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
82 </div>
83 <div class="sub">
84     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
85 </div>
86 <div class="sub">
87     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
88 </div>
89 <div class="sub">
90     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
91 </div>
92 <div class="menu">
93   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
94 </div>
95 <div class="sub">
96     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
97 </div>
98 <div class="sub">
99     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
100 </div>
101 <div class="sub">
102     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
103 </div>
104 <div class="sub">
105     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
106 </div>
107 <div class="sep"></div>\r
108 <div  class="menu">
109    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
110 </div>
111 <div class="sub">
112     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
113 </div>
114 <div class="sub">
115     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
116  </div>
117 <div class="menu">
118   <a title="Resources" href="../../www/resources.html">Resources</a>
119 </div>
120 <div class="menu">
121   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
122 </div>
123 <div class="menu">
124   <a title="Download" href="../../www/download.html">Download</a>
125 </div>
126 <div class="sep"></div>\r
127 <div class="menu">
128   <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
129 </div>
130 <div class="sep"></div>\r
131 <div class="menu">
132   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
133 </div>
134 <div  class="sub">
135   <a title="Site Map: Links" href="../../www/links.html">Links</a>
136 </div>
137 <div class="sep"></div>\r
138 <div  class="menu">
139   <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
140
141 <div class="sponsbox">
142 <div  class="sponsor">
143    <a title="Sponsor: alaTest.com" href="http://alatest.com">alaTest.com</a><!-- 20110801000300 -->
144 </div>
145 <div  class="sponsor">
146   <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
147 </div>
148 <div  class="sponsor">
149   <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
150 </div>
151 <div  class="sponsor">
152   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
153 </div>
154 </div>
155 </div>
156 </div>\r
157 \r
158 <div class="eastbar">\r
159   <script type="text/javascript">\r
160   <!--\r
161     google_ad_client = "pub-3129977114552745";\r
162     google_ad_slot = "0574824969";\r
163     google_ad_width = 160;\r
164     google_ad_height = 600;\r
165   //-->\r
166   </script>\r
167   <script type="text/javascript"\r
168     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
169   </script>\r
170 </div>\r
171 \r
172 <div class="main">\r
173 \r
174 <h1>Module image-view
175  Methods</h1>
176 <p class="navigation-index">[<a href="#CloneImageView">CloneImageView</a> &bull; <a href="#DestroyImageView">DestroyImageView</a> &bull; <a href="#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> &bull; <a href="#GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a> &bull; <a href="#GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a> &bull; <a href="#GetImageViewException">GetImageViewException</a> &bull; <a href="#GetImageViewExtent">GetImageViewExtent</a> &bull; <a href="#GetImageViewImage">GetImageViewImage</a> &bull; <a href="#GetImageViewIterator">GetImageViewIterator</a> &bull; <a href="#GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a> &bull; <a href="#GetImageViewVirtualPixels">GetImageViewVirtualPixels</a> &bull; <a href="#IsImageView">IsImageView</a> &bull; <a href="#NewImageView">NewImageView</a> &bull; <a href="#NewImageViewRegion">NewImageViewRegion</a> &bull; <a href="#SetImageViewDescription">SetImageViewDescription</a> &bull; <a href="#SetImageViewIterator">SetImageViewIterator</a> &bull; <a href="#SetImageViewThreads">SetImageViewThreads</a> &bull; <a href="#TransferImageViewIterator">TransferImageViewIterator</a> &bull; <a href="#UpdateImageViewIterator">UpdateImageViewIterator</a>]</p>
177
178 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
179 _8c.html" target="source" name="CloneImageView">CloneImageView</a></h2>
180 <div class="doc-section">
181
182 <p>CloneImageView() makes a copy of the specified image view.</p></ol>
183
184 <p>The format of the CloneImageView method is:</p>
185
186 <pre class="code">
187   ImageView *CloneImageView(const ImageView *image_view)
188 </pre>
189
190 <p>A description of each parameter follows:</p></ol>
191
192 <h5>image_view</h5>
193 <ol><p>the image view.</p></ol>
194
195  </div>
196 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
197 _8c.html" target="source" name="DestroyImageView">DestroyImageView</a></h2>
198 <div class="doc-section">
199
200 <p>DestroyImageView() deallocates memory associated with a image view.</p></ol>
201
202 <p>The format of the DestroyImageView method is:</p>
203
204 <pre class="code">
205   ImageView *DestroyImageView(ImageView *image_view)
206 </pre>
207
208 <p>A description of each parameter follows:</p></ol>
209
210 <h5>image_view</h5>
211 <ol><p>the image view.</p></ol>
212
213  </div>
214 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
215 _8c.html" target="source" name="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
216 <div class="doc-section">
217
218 <p>DuplexTransferImageViewIterator() iterates over three image 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 image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p></ol>
219
220 <p>The callback signature is:</p>
221
222 <pre class="text">
223   MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
224     const ImageView *duplex,ImageView *destination,const ssize_t y,
225     const int thread_id,void *context)
226 </pre>
227
228 <p>Use this pragma if the view is not single threaded:</p>
229
230 <pre class="text">
231       #pragma omp critical
232 </pre>
233
234 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p></ol>
235
236 <p>The format of the DuplexTransferImageViewIterator method is:</p>
237
238 <pre class="code">
239   MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
240     ImageView *duplex,ImageView *destination,
241     DuplexTransferImageViewMethod transfer,void *context)
242 </pre>
243
244 <p>A description of each parameter follows:</p></ol>
245
246 <h5>source</h5>
247 <ol><p>the source image view.</p></ol>
248
249 <h5>duplex</h5>
250 <ol><p>the duplex image view.</p></ol>
251
252 <h5>destination</h5>
253 <ol><p>the destination image view.</p></ol>
254
255 <h5>transfer</h5>
256 <ol><p>the transfer callback method.</p></ol>
257
258 <h5>context</h5>
259 <ol><p>the user defined context.</p></ol>
260
261  </div>
262 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
263 _8c.html" target="source" name="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
264 <div class="doc-section">
265
266 <p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p></ol>
267
268 <p>The format of the GetImageViewAuthenticPixels method is:</p>
269
270 <pre class="code">
271   IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
272 </pre>
273
274 <p>A description of each parameter follows:</p></ol>
275
276 <h5>image_view</h5>
277 <ol><p>the image view.</p></ol>
278
279  </div>
280 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
281 _8c.html" target="source" name="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
282 <div class="doc-section">
283
284 <p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p></ol>
285
286 <p>The format of the GetImageViewAuthenticPixels method is:</p>
287
288 <pre class="code">
289   PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
290 </pre>
291
292 <p>A description of each parameter follows:</p></ol>
293
294 <h5>image_view</h5>
295 <ol><p>the image view.</p></ol>
296
297  </div>
298 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
299 _8c.html" target="source" name="GetImageViewException">GetImageViewException</a></h2>
300 <div class="doc-section">
301
302 <p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p></ol>
303
304 <p>The format of the GetImageViewException method is:</p>
305
306 <pre class="code">
307   char *GetImageViewException(const PixelImage *image_view,
308     ExceptionType *severity)
309 </pre>
310
311 <p>A description of each parameter follows:</p></ol>
312
313 <h5>image_view</h5>
314 <ol><p>the pixel image_view.</p></ol>
315
316 <h5>severity</h5>
317 <ol><p>the severity of the error is returned here.</p></ol>
318
319  </div>
320 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
321 _8c.html" target="source" name="GetImageViewExtent">GetImageViewExtent</a></h2>
322 <div class="doc-section">
323
324 <p>GetImageViewExtent() returns the image view extent.</p></ol>
325
326 <p>The format of the GetImageViewExtent method is:</p>
327
328 <pre class="code">
329   RectangleInfo GetImageViewExtent(const ImageView *image_view)
330 </pre>
331
332 <p>A description of each parameter follows:</p></ol>
333
334 <h5>image_view</h5>
335 <ol><p>the image view.</p></ol>
336
337  </div>
338 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
339 _8c.html" target="source" name="GetImageViewImage">GetImageViewImage</a></h2>
340 <div class="doc-section">
341
342 <p>GetImageViewImage() returns the image associated with the image view.</p></ol>
343
344 <p>The format of the GetImageViewImage method is:</p>
345
346 <pre class="code">
347   MagickCore *GetImageViewImage(const ImageView *image_view)
348 </pre>
349
350 <p>A description of each parameter follows:</p></ol>
351
352 <h5>image_view</h5>
353 <ol><p>the image view.</p></ol>
354
355  </div>
356 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
357 _8c.html" target="source" name="GetImageViewIterator">GetImageViewIterator</a></h2>
358 <div class="doc-section">
359
360 <p>GetImageViewIterator() iterates over the image 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></ol>
361
362 <p>The callback signature is:</p>
363
364 <pre class="text">
365   MagickBooleanType GetImageViewMethod(const ImageView *source,
366     const ssize_t y,const int thread_id,void *context)
367 </pre>
368
369 <p>Use this pragma if the view is not single threaded:</p>
370
371 <pre class="text">
372       #pragma omp critical
373 </pre>
374
375 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p></ol>
376
377 <p>The format of the GetImageViewIterator method is:</p>
378
379 <pre class="code">
380   MagickBooleanType GetImageViewIterator(ImageView *source,
381     GetImageViewMethod get,void *context)
382 </pre>
383
384 <p>A description of each parameter follows:</p></ol>
385
386 <h5>source</h5>
387 <ol><p>the source image view.</p></ol>
388
389 <h5>get</h5>
390 <ol><p>the get callback method.</p></ol>
391
392 <h5>context</h5>
393 <ol><p>the user defined context.</p></ol>
394
395  </div>
396 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
397 _8c.html" target="source" name="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
398 <div class="doc-section">
399
400 <p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p></ol>
401
402 <p>The format of the GetImageViewVirtualIndexes method is:</p>
403
404 <pre class="code">
405   const IndexPacket *GetImageViewVirtualIndexes(
406     const ImageView *image_view)
407 </pre>
408
409 <p>A description of each parameter follows:</p></ol>
410
411 <h5>image_view</h5>
412 <ol><p>the image view.</p></ol>
413
414  </div>
415 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
416 _8c.html" target="source" name="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
417 <div class="doc-section">
418
419 <p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p></ol>
420
421 <p>The format of the GetImageViewVirtualPixels method is:</p>
422
423 <pre class="code">
424   const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
425 </pre>
426
427 <p>A description of each parameter follows:</p></ol>
428
429 <h5>image_view</h5>
430 <ol><p>the image view.</p></ol>
431
432  </div>
433 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
434 _8c.html" target="source" name="IsImageView">IsImageView</a></h2>
435 <div class="doc-section">
436
437 <p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p></ol>
438
439 <p>The format of the IsImageView method is:</p>
440
441 <pre class="code">
442   MagickBooleanType IsImageView(const ImageView *image_view)
443 </pre>
444
445 <p>A description of each parameter follows:</p></ol>
446
447 <h5>image_view</h5>
448 <ol><p>the image view.</p></ol>
449
450  </div>
451 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
452 _8c.html" target="source" name="NewImageView">NewImageView</a></h2>
453 <div class="doc-section">
454
455 <p>NewImageView() returns a image view required for all other methods in the Image View API.</p></ol>
456
457 <p>The format of the NewImageView method is:</p>
458
459 <pre class="code">
460   ImageView *NewImageView(MagickCore *wand)
461 </pre>
462
463 <p>A description of each parameter follows:</p></ol>
464
465 <h5>wand</h5>
466 <ol><p>the wand.</p></ol>
467
468  </div>
469 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
470 _8c.html" target="source" name="NewImageViewRegion">NewImageViewRegion</a></h2>
471 <div class="doc-section">
472
473 <p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p></ol>
474
475 <p>The format of the NewImageViewRegion method is:</p>
476
477 <pre class="code">
478   ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
479     const ssize_t y,const size_t width,const size_t height)
480 </pre>
481
482 <p>A description of each parameter follows:</p></ol>
483
484 <h5>wand</h5>
485 <ol><p>the magick wand.</p></ol>
486
487 <h5>x,y,columns,rows</h5>
488 <ol><p>These values define the perimeter of a extent of pixel_wands view.</p></ol>
489
490  </div>
491 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
492 _8c.html" target="source" name="SetImageViewDescription">SetImageViewDescription</a></h2>
493 <div class="doc-section">
494
495 <p>SetImageViewDescription() associates a description with an image view.</p></ol>
496
497 <p>The format of the SetImageViewDescription method is:</p>
498
499 <pre class="code">
500   void SetImageViewDescription(ImageView *image_view,
501     const char *description)
502 </pre>
503
504 <p>A description of each parameter follows:</p></ol>
505
506 <h5>image_view</h5>
507 <ol><p>the image view.</p></ol>
508
509 <h5>description</h5>
510 <ol><p>the image view description.</p></ol>
511
512  </div>
513 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
514 _8c.html" target="source" name="SetImageViewIterator">SetImageViewIterator</a></h2>
515 <div class="doc-section">
516
517 <p>SetImageViewIterator() iterates over the image 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></ol>
518
519 <p>The callback signature is:</p>
520
521 <pre class="text">
522   MagickBooleanType SetImageViewMethod(ImageView *destination,
523     const ssize_t y,const int thread_id,void *context)
524 </pre>
525
526 <p>Use this pragma if the view is not single threaded:</p>
527
528 <pre class="text">
529       #pragma omp critical
530 </pre>
531
532 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p></ol>
533
534 <p>The format of the SetImageViewIterator method is:</p>
535
536 <pre class="code">
537   MagickBooleanType SetImageViewIterator(ImageView *destination,
538     SetImageViewMethod set,void *context)
539 </pre>
540
541 <p>A description of each parameter follows:</p></ol>
542
543 <h5>destination</h5>
544 <ol><p>the image view.</p></ol>
545
546 <h5>set</h5>
547 <ol><p>the set callback method.</p></ol>
548
549 <h5>context</h5>
550 <ol><p>the user defined context.</p></ol>
551
552  </div>
553 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
554 _8c.html" target="source" name="SetImageViewThreads">SetImageViewThreads</a></h2>
555 <div class="doc-section">
556
557 <p>SetImageViewThreads() sets the number of threads in a thread team.</p></ol>
558
559 <p>The format of the SetImageViewDescription method is:</p>
560
561 <pre class="code">
562   void SetImageViewThreads(ImageView *image_view,
563     const size_t number_threads)
564 </pre>
565
566 <p>A description of each parameter follows:</p></ol>
567
568 <h5>image_view</h5>
569 <ol><p>the image view.</p></ol>
570
571 <h5>number_threads</h5>
572 <ol><p>the number of threads in a thread team.</p></ol>
573
574  </div>
575 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
576 _8c.html" target="source" name="TransferImageViewIterator">TransferImageViewIterator</a></h2>
577 <div class="doc-section">
578
579 <p>TransferImageViewIterator() iterates over two image 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 image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p></ol>
580
581 <p>The callback signature is:</p>
582
583 <pre class="text">
584   MagickBooleanType TransferImageViewMethod(const ImageView *source,
585     ImageView *destination,const ssize_t y,const int thread_id,
586     void *context)
587 </pre>
588
589 <p>Use this pragma if the view is not single threaded:</p>
590
591 <pre class="text">
592       #pragma omp critical
593 </pre>
594
595 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p></ol>
596
597 <p>The format of the TransferImageViewIterator method is:</p>
598
599 <pre class="code">
600   MagickBooleanType TransferImageViewIterator(ImageView *source,
601     ImageView *destination,TransferImageViewMethod transfer,void *context)
602 </pre>
603
604 <p>A description of each parameter follows:</p></ol>
605
606 <h5>source</h5>
607 <ol><p>the source image view.</p></ol>
608
609 <h5>destination</h5>
610 <ol><p>the destination image view.</p></ol>
611
612 <h5>transfer</h5>
613 <ol><p>the transfer callback method.</p></ol>
614
615 <h5>context</h5>
616 <ol><p>the user defined context.</p></ol>
617
618  </div>
619 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
620 _8c.html" target="source" name="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
621 <div class="doc-section">
622
623 <p>UpdateImageViewIterator() iterates over the image 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></ol>
624
625 <p>The callback signature is:</p>
626
627 <pre class="text">
628   MagickBooleanType UpdateImageViewMethod(ImageView *source,
629     const ssize_t y,const int thread_id,void *context)
630 </pre>
631
632 <p>Use this pragma if the view is not single threaded:</p>
633
634 <pre class="text">
635       #pragma omp critical
636 </pre>
637
638 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p></ol>
639
640 <p>The format of the UpdateImageViewIterator method is:</p>
641
642 <pre class="code">
643   MagickBooleanType UpdateImageViewIterator(ImageView *source,
644     UpdateImageViewMethod update,void *context)
645 </pre>
646
647 <p>A description of each parameter follows:</p></ol>
648
649 <h5>source</h5>
650 <ol><p>the source image view.</p></ol>
651
652 <h5>update</h5>
653 <ol><p>the update callback method.</p></ol>
654
655 <h5>context</h5>
656 <ol><p>the user defined context.</p></ol>
657
658  </div>
659 \r
660 </div>\r
661 \r
662 <div id="linkbar">\r
663     <span id="linkbar-west">&nbsp;</span>\r
664     <span id="linkbar-center">\r
665       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
666       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
667     </span>\r
668     <span id="linkbar-east">&nbsp;</span>\r
669   </div>\r
670   <div class="footer">\r
671     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
672     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
673   </div>\r
674   <div style="clear: both; margin: 0; width: 100%; "></div>\r
675   <script type="text/javascript">\r
676     var _gaq = _gaq || [];\r
677     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
678     _gaq.push(['_trackPageview']);\r
679 \r
680     (function() {\r
681       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
682       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
683       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
684     })();\r
685   </script>\r
686 </body>\r
687 </html>\r