]> 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 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: MagickCore, C API for ImageMagick: Image 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="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"/>
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 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 title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201108010090 alexanian media -->
164 </div>
165 <div  class="sponsor">
166   <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
167 </div>
168 <div  class="sponsor">
169   <a title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
170 </div>
171 <div  class="sponsor">
172   <a 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 title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
176 </div>
177 <div  class="sponsor">
178   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
179 </div>
180 <div  class="sponsor">
181   <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
182 </div>
183 <div  class="sponsor">
184   <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
185 </div>
186 <div  class="sponsor">
187    <a title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011070100030 autoteile-Carparts-->
188 </div>
189 </div>
190 </div>
191 </div>\r
192 \r
193 <div class="eastbar">\r
194 \r
195 </div>\r
196 \r
197 <div class="main">\r
198 \r
199 <h1>Module image-view Methods</h1>
200 <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>
201
202 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
203 <div class="doc-section">
204
205 <p>CloneImageView() makes a copy of the specified image view.</p>
206
207 <p>The format of the CloneImageView method is:</p>
208
209 <pre class="code">
210   ImageView *CloneImageView(const ImageView *image_view)
211 </pre>
212
213 <p>A description of each parameter follows:</p>
214
215 <h5>image_view</h5>
216 <p>the image view.</p>
217
218  </div>
219 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
220 <div class="doc-section">
221
222 <p>DestroyImageView() deallocates memory associated with a image view.</p>
223
224 <p>The format of the DestroyImageView method is:</p>
225
226 <pre class="code">
227   ImageView *DestroyImageView(ImageView *image_view)
228 </pre>
229
230 <p>A description of each parameter follows:</p>
231
232 <h5>image_view</h5>
233 <p>the image view.</p>
234
235  </div>
236 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
237 <div class="doc-section">
238
239 <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>
240
241 <p>The callback signature is:</p>
242
243 <pre class="text">
244   MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
245     const ImageView *duplex,ImageView *destination,const ssize_t y,
246     const int thread_id,void *context)
247 </pre>
248
249 <p>Use this pragma if the view is not single threaded:</p>
250
251 <pre class="text">
252       #pragma omp critical
253 </pre>
254
255 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
256
257 <p>The format of the DuplexTransferImageViewIterator method is:</p>
258
259 <pre class="code">
260   MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
261     ImageView *duplex,ImageView *destination,
262     DuplexTransferImageViewMethod transfer,void *context)
263 </pre>
264
265 <p>A description of each parameter follows:</p>
266
267 <h5>source</h5>
268 <p>the source image view.</p>
269
270 <h5>duplex</h5>
271 <p>the duplex image view.</p>
272
273 <h5>destination</h5>
274 <p>the destination image view.</p>
275
276 <h5>transfer</h5>
277 <p>the transfer callback method.</p>
278
279 <h5>context</h5>
280 <p>the user defined context.</p>
281
282  </div>
283 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
284 <div class="doc-section">
285
286 <p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
287
288 <p>The format of the GetImageViewAuthenticPixels method is:</p>
289
290 <pre class="code">
291   IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
292 </pre>
293
294 <p>A description of each parameter follows:</p>
295
296 <h5>image_view</h5>
297 <p>the image view.</p>
298
299  </div>
300 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
301 <div class="doc-section">
302
303 <p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
304
305 <p>The format of the GetImageViewAuthenticPixels method is:</p>
306
307 <pre class="code">
308   PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
309 </pre>
310
311 <p>A description of each parameter follows:</p>
312
313 <h5>image_view</h5>
314 <p>the image view.</p>
315
316  </div>
317 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
318 <div class="doc-section">
319
320 <p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
321
322 <p>The format of the GetImageViewException method is:</p>
323
324 <pre class="code">
325   char *GetImageViewException(const PixelImage *image_view,
326     ExceptionType *severity)
327 </pre>
328
329 <p>A description of each parameter follows:</p>
330
331 <h5>image_view</h5>
332 <p>the pixel image_view.</p>
333
334 <h5>severity</h5>
335 <p>the severity of the error is returned here.</p>
336
337  </div>
338 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
339 <div class="doc-section">
340
341 <p>GetImageViewExtent() returns the image view extent.</p>
342
343 <p>The format of the GetImageViewExtent method is:</p>
344
345 <pre class="code">
346   RectangleInfo GetImageViewExtent(const ImageView *image_view)
347 </pre>
348
349 <p>A description of each parameter follows:</p>
350
351 <h5>image_view</h5>
352 <p>the image view.</p>
353
354  </div>
355 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
356 <div class="doc-section">
357
358 <p>GetImageViewImage() returns the image associated with the image view.</p>
359
360 <p>The format of the GetImageViewImage method is:</p>
361
362 <pre class="code">
363   MagickCore *GetImageViewImage(const ImageView *image_view)
364 </pre>
365
366 <p>A description of each parameter follows:</p>
367
368 <h5>image_view</h5>
369 <p>the image view.</p>
370
371  </div>
372 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
373 <div class="doc-section">
374
375 <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>
376
377 <p>The callback signature is:</p>
378
379 <pre class="text">
380   MagickBooleanType GetImageViewMethod(const ImageView *source,
381     const ssize_t y,const int thread_id,void *context)
382 </pre>
383
384 <p>Use this pragma if the view is not single threaded:</p>
385
386 <pre class="text">
387       #pragma omp critical
388 </pre>
389
390 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
391
392 <p>The format of the GetImageViewIterator method is:</p>
393
394 <pre class="code">
395   MagickBooleanType GetImageViewIterator(ImageView *source,
396     GetImageViewMethod get,void *context)
397 </pre>
398
399 <p>A description of each parameter follows:</p>
400
401 <h5>source</h5>
402 <p>the source image view.</p>
403
404 <h5>get</h5>
405 <p>the get callback method.</p>
406
407 <h5>context</h5>
408 <p>the user defined context.</p>
409
410  </div>
411 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
412 <div class="doc-section">
413
414 <p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
415
416 <p>The format of the GetImageViewVirtualIndexes method is:</p>
417
418 <pre class="code">
419   const IndexPacket *GetImageViewVirtualIndexes(
420     const ImageView *image_view)
421 </pre>
422
423 <p>A description of each parameter follows:</p>
424
425 <h5>image_view</h5>
426 <p>the image view.</p>
427
428  </div>
429 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
430 <div class="doc-section">
431
432 <p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
433
434 <p>The format of the GetImageViewVirtualPixels method is:</p>
435
436 <pre class="code">
437   const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
438 </pre>
439
440 <p>A description of each parameter follows:</p>
441
442 <h5>image_view</h5>
443 <p>the image view.</p>
444
445  </div>
446 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
447 <div class="doc-section">
448
449 <p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
450
451 <p>The format of the IsImageView method is:</p>
452
453 <pre class="code">
454   MagickBooleanType IsImageView(const ImageView *image_view)
455 </pre>
456
457 <p>A description of each parameter follows:</p>
458
459 <h5>image_view</h5>
460 <p>the image view.</p>
461
462  </div>
463 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
464 <div class="doc-section">
465
466 <p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
467
468 <p>The format of the NewImageView method is:</p>
469
470 <pre class="code">
471   ImageView *NewImageView(MagickCore *wand)
472 </pre>
473
474 <p>A description of each parameter follows:</p>
475
476 <h5>wand</h5>
477 <p>the wand.</p>
478
479  </div>
480 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
481 <div class="doc-section">
482
483 <p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
484
485 <p>The format of the NewImageViewRegion method is:</p>
486
487 <pre class="code">
488   ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
489     const ssize_t y,const size_t width,const size_t height)
490 </pre>
491
492 <p>A description of each parameter follows:</p>
493
494 <h5>wand</h5>
495 <p>the magick wand.</p>
496
497 <h5>x,y,columns,rows</h5>
498 <p>These values define the perimeter of a extent of pixel_wands view.</p>
499
500  </div>
501 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
502 <div class="doc-section">
503
504 <p>SetImageViewDescription() associates a description with an image view.</p>
505
506 <p>The format of the SetImageViewDescription method is:</p>
507
508 <pre class="code">
509   void SetImageViewDescription(ImageView *image_view,
510     const char *description)
511 </pre>
512
513 <p>A description of each parameter follows:</p>
514
515 <h5>image_view</h5>
516 <p>the image view.</p>
517
518 <h5>description</h5>
519 <p>the image view description.</p>
520
521  </div>
522 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
523 <div class="doc-section">
524
525 <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>
526
527 <p>The callback signature is:</p>
528
529 <pre class="text">
530   MagickBooleanType SetImageViewMethod(ImageView *destination,
531     const ssize_t y,const int thread_id,void *context)
532 </pre>
533
534 <p>Use this pragma if the view is not single threaded:</p>
535
536 <pre class="text">
537       #pragma omp critical
538 </pre>
539
540 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
541
542 <p>The format of the SetImageViewIterator method is:</p>
543
544 <pre class="code">
545   MagickBooleanType SetImageViewIterator(ImageView *destination,
546     SetImageViewMethod set,void *context)
547 </pre>
548
549 <p>A description of each parameter follows:</p>
550
551 <h5>destination</h5>
552 <p>the image view.</p>
553
554 <h5>set</h5>
555 <p>the set callback method.</p>
556
557 <h5>context</h5>
558 <p>the user defined context.</p>
559
560  </div>
561 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
562 <div class="doc-section">
563
564 <p>SetImageViewThreads() sets the number of threads in a thread team.</p>
565
566 <p>The format of the SetImageViewDescription method is:</p>
567
568 <pre class="code">
569   void SetImageViewThreads(ImageView *image_view,
570     const size_t number_threads)
571 </pre>
572
573 <p>A description of each parameter follows:</p>
574
575 <h5>image_view</h5>
576 <p>the image view.</p>
577
578 <h5>number_threads</h5>
579 <p>the number of threads in a thread team.</p>
580
581  </div>
582 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
583 <div class="doc-section">
584
585 <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>
586
587 <p>The callback signature is:</p>
588
589 <pre class="text">
590   MagickBooleanType TransferImageViewMethod(const ImageView *source,
591     ImageView *destination,const ssize_t y,const int thread_id,
592     void *context)
593 </pre>
594
595 <p>Use this pragma if the view is not single threaded:</p>
596
597 <pre class="text">
598       #pragma omp critical
599 </pre>
600
601 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
602
603 <p>The format of the TransferImageViewIterator method is:</p>
604
605 <pre class="code">
606   MagickBooleanType TransferImageViewIterator(ImageView *source,
607     ImageView *destination,TransferImageViewMethod transfer,void *context)
608 </pre>
609
610 <p>A description of each parameter follows:</p>
611
612 <h5>source</h5>
613 <p>the source image view.</p>
614
615 <h5>destination</h5>
616 <p>the destination image view.</p>
617
618 <h5>transfer</h5>
619 <p>the transfer callback method.</p>
620
621 <h5>context</h5>
622 <p>the user defined context.</p>
623
624  </div>
625 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
626 <div class="doc-section">
627
628 <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>
629
630 <p>The callback signature is:</p>
631
632 <pre class="text">
633   MagickBooleanType UpdateImageViewMethod(ImageView *source,
634     const ssize_t y,const int thread_id,void *context)
635 </pre>
636
637 <p>Use this pragma if the view is not single threaded:</p>
638
639 <pre class="text">
640       #pragma omp critical
641 </pre>
642
643 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
644
645 <p>The format of the UpdateImageViewIterator method is:</p>
646
647 <pre class="code">
648   MagickBooleanType UpdateImageViewIterator(ImageView *source,
649     UpdateImageViewMethod update,void *context)
650 </pre>
651
652 <p>A description of each parameter follows:</p>
653
654 <h5>source</h5>
655 <p>the source image view.</p>
656
657 <h5>update</h5>
658 <p>the update callback method.</p>
659
660 <h5>context</h5>
661 <p>the user defined context.</p>
662
663  </div>
664 \r
665 </div>\r
666 \r
667 <div id="linkbar">\r
668     <span id="linkbar-west">&nbsp;</span>\r
669     <span id="linkbar-center">\r
670       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
671       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
672     </span>\r
673     <span id="linkbar-east">&nbsp;</span>\r
674   </div>\r
675   <div class="footer">\r
676     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
677     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
678   </div>\r
679   <div style="clear: both; margin: 0; width: 100%; "></div>\r
680   <script type="text/javascript">\r
681     var _gaq = _gaq || [];\r
682     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
683     _gaq.push(['_trackPageview']);\r
684 \r
685     (function() {\r
686       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
687       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
688       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
689     })();\r
690   </script>\r
691 </body>\r
692 </html>\r