]> granicus.if.org Git - imagemagick/blob - www/api/image-view.html
a72ce53f15155f918d9757914d769df7b6b1f080
[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 automagically."/>
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, Image, Processing, Automagically"/>
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: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
92 </div>
93 <div class="sub">
94     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
95 </div>
96 <div class="sep"></div>\r
97 <div class="menu">
98   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
99 </div>
100 <div class="sub">
101     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
102 </div>
103 <div class="sub">
104     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
105 </div>
106 <div class="sub">
107     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
108 </div>
109 <div class="menu">
110   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
111 </div>
112 <div class="sub">
113     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
114 </div>
115 <div class="sub">
116     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
117 </div>
118 <div class="sub">
119     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
120 </div>
121 <div class="sub">
122     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
123 </div>
124 <div class="sep"></div>\r
125 <div  class="menu">
126    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
127 </div>
128 <div class="sub">
129     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
130 </div>
131 <div class="sub">
132     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
133  </div>
134 <div class="menu">
135   <a title="Resources" href="../../www/resources.html">Resources</a>
136 </div>
137 <div class="menu">
138   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
139 </div>
140 <div class="menu">
141   <a title="Download" href="../../www/download.html">Download</a>
142 </div>
143 <div class="sep"></div>\r
144 <div class="menu">
145   <a title="Search" href="../../www/search.html">Search</a>
146 </div>
147 <div class="sep"></div>\r
148 <div class="menu">
149   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
150 </div>
151 <div  class="sub">
152   <a title="Site Map: Links" href="../../www/links.html">Links</a>
153 </div>
154 <div class="sep"></div>\r
155 <div  class="menu">
156   <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
157
158 <a href="http://www.networkredux.com">
159   <img src="../../images/networkredux.png" alt="[sponsor]"
160   style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
161 <div class="sponsbox">
162 <div  class="sponsor">
163   <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
164 </div>
165 <div  class="sponsor">
166   <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
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">
172   <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
173 </div>
174 <div  class="sponsor">
175   <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
176 </div>
177 <div  class="sponsor">
178   <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
179 </div>
180 <div  class="sponsor">
181   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
182 </div>
183 <div  class="sponsor">
184   <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
185 </div>
186 <div  class="sponsor">
187   <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
188 </div>
189 <div  class="sponsor">
190   <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
191 </div>
192 <div  class="sponsor">
193   <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
194 </div>
195 <div  class="sponsor">
196   <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
197 </div>
198 <div  class="sponsor">
199   <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
200 </div>
201 <div  class="sponsor">
202    <a rel="follow" title="Sponsor: Fototapete" href=" http://www.allesdruck.de/Fototapete-Tapetendruck,category,8830.html">Fototapete</a><!-- 20110701000080 a-o.de -->
203 </div>
204 </div>
205 </div>
206 </div>\r
207 \r
208 <div class="eastbar">\r
209 \r
210 </div>\r
211 \r
212 <div class="main">\r
213 \r
214 <h1>Module image-view Methods</h1>
215 <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>
216
217 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
218 <div class="doc-section">
219
220 <p>CloneImageView() makes a copy of the specified image view.</p>
221
222 <p>The format of the CloneImageView method is:</p>
223
224 <pre class="code">
225   ImageView *CloneImageView(const ImageView *image_view)
226 </pre>
227
228 <p>A description of each parameter follows:</p>
229
230 <h5>image_view</h5>
231 <p>the image view.</p>
232
233  </div>
234 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
235 <div class="doc-section">
236
237 <p>DestroyImageView() deallocates memory associated with a image view.</p>
238
239 <p>The format of the DestroyImageView method is:</p>
240
241 <pre class="code">
242   ImageView *DestroyImageView(ImageView *image_view)
243 </pre>
244
245 <p>A description of each parameter follows:</p>
246
247 <h5>image_view</h5>
248 <p>the image view.</p>
249
250  </div>
251 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
252 <div class="doc-section">
253
254 <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>
255
256 <p>The callback signature is:</p>
257
258 <pre class="text">
259   MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
260     const ImageView *duplex,ImageView *destination,const ssize_t y,
261     const int thread_id,void *context)
262 </pre>
263
264 <p>Use this pragma if the view is not single threaded:</p>
265
266 <pre class="text">
267       #pragma omp critical
268 </pre>
269
270 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
271
272 <p>The format of the DuplexTransferImageViewIterator method is:</p>
273
274 <pre class="code">
275   MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
276     ImageView *duplex,ImageView *destination,
277     DuplexTransferImageViewMethod transfer,void *context)
278 </pre>
279
280 <p>A description of each parameter follows:</p>
281
282 <h5>source</h5>
283 <p>the source image view.</p>
284
285 <h5>duplex</h5>
286 <p>the duplex image view.</p>
287
288 <h5>destination</h5>
289 <p>the destination image view.</p>
290
291 <h5>transfer</h5>
292 <p>the transfer callback method.</p>
293
294 <h5>context</h5>
295 <p>the user defined context.</p>
296
297  </div>
298 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
299 <div class="doc-section">
300
301 <p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
302
303 <p>The format of the GetImageViewAuthenticPixels method is:</p>
304
305 <pre class="code">
306   IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
307 </pre>
308
309 <p>A description of each parameter follows:</p>
310
311 <h5>image_view</h5>
312 <p>the image view.</p>
313
314  </div>
315 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
316 <div class="doc-section">
317
318 <p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
319
320 <p>The format of the GetImageViewAuthenticPixels method is:</p>
321
322 <pre class="code">
323   PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
324 </pre>
325
326 <p>A description of each parameter follows:</p>
327
328 <h5>image_view</h5>
329 <p>the image view.</p>
330
331  </div>
332 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
333 <div class="doc-section">
334
335 <p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
336
337 <p>The format of the GetImageViewException method is:</p>
338
339 <pre class="code">
340   char *GetImageViewException(const PixelImage *image_view,
341     ExceptionType *severity)
342 </pre>
343
344 <p>A description of each parameter follows:</p>
345
346 <h5>image_view</h5>
347 <p>the pixel image_view.</p>
348
349 <h5>severity</h5>
350 <p>the severity of the error is returned here.</p>
351
352  </div>
353 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
354 <div class="doc-section">
355
356 <p>GetImageViewExtent() returns the image view extent.</p>
357
358 <p>The format of the GetImageViewExtent method is:</p>
359
360 <pre class="code">
361   RectangleInfo GetImageViewExtent(const ImageView *image_view)
362 </pre>
363
364 <p>A description of each parameter follows:</p>
365
366 <h5>image_view</h5>
367 <p>the image view.</p>
368
369  </div>
370 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
371 <div class="doc-section">
372
373 <p>GetImageViewImage() returns the image associated with the image view.</p>
374
375 <p>The format of the GetImageViewImage method is:</p>
376
377 <pre class="code">
378   MagickCore *GetImageViewImage(const ImageView *image_view)
379 </pre>
380
381 <p>A description of each parameter follows:</p>
382
383 <h5>image_view</h5>
384 <p>the image view.</p>
385
386  </div>
387 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
388 <div class="doc-section">
389
390 <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>
391
392 <p>The callback signature is:</p>
393
394 <pre class="text">
395   MagickBooleanType GetImageViewMethod(const ImageView *source,
396     const ssize_t y,const int thread_id,void *context)
397 </pre>
398
399 <p>Use this pragma if the view is not single threaded:</p>
400
401 <pre class="text">
402       #pragma omp critical
403 </pre>
404
405 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
406
407 <p>The format of the GetImageViewIterator method is:</p>
408
409 <pre class="code">
410   MagickBooleanType GetImageViewIterator(ImageView *source,
411     GetImageViewMethod get,void *context)
412 </pre>
413
414 <p>A description of each parameter follows:</p>
415
416 <h5>source</h5>
417 <p>the source image view.</p>
418
419 <h5>get</h5>
420 <p>the get callback method.</p>
421
422 <h5>context</h5>
423 <p>the user defined context.</p>
424
425  </div>
426 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
427 <div class="doc-section">
428
429 <p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
430
431 <p>The format of the GetImageViewVirtualIndexes method is:</p>
432
433 <pre class="code">
434   const IndexPacket *GetImageViewVirtualIndexes(
435     const ImageView *image_view)
436 </pre>
437
438 <p>A description of each parameter follows:</p>
439
440 <h5>image_view</h5>
441 <p>the image view.</p>
442
443  </div>
444 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
445 <div class="doc-section">
446
447 <p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
448
449 <p>The format of the GetImageViewVirtualPixels method is:</p>
450
451 <pre class="code">
452   const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
453 </pre>
454
455 <p>A description of each parameter follows:</p>
456
457 <h5>image_view</h5>
458 <p>the image view.</p>
459
460  </div>
461 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
462 <div class="doc-section">
463
464 <p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
465
466 <p>The format of the IsImageView method is:</p>
467
468 <pre class="code">
469   MagickBooleanType IsImageView(const ImageView *image_view)
470 </pre>
471
472 <p>A description of each parameter follows:</p>
473
474 <h5>image_view</h5>
475 <p>the image view.</p>
476
477  </div>
478 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
479 <div class="doc-section">
480
481 <p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
482
483 <p>The format of the NewImageView method is:</p>
484
485 <pre class="code">
486   ImageView *NewImageView(MagickCore *wand)
487 </pre>
488
489 <p>A description of each parameter follows:</p>
490
491 <h5>wand</h5>
492 <p>the wand.</p>
493
494  </div>
495 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
496 <div class="doc-section">
497
498 <p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
499
500 <p>The format of the NewImageViewRegion method is:</p>
501
502 <pre class="code">
503   ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
504     const ssize_t y,const size_t width,const size_t height)
505 </pre>
506
507 <p>A description of each parameter follows:</p>
508
509 <h5>wand</h5>
510 <p>the magick wand.</p>
511
512 <h5>x,y,columns,rows</h5>
513 <p>These values define the perimeter of a extent of pixel_wands view.</p>
514
515  </div>
516 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
517 <div class="doc-section">
518
519 <p>SetImageViewDescription() associates a description with an image view.</p>
520
521 <p>The format of the SetImageViewDescription method is:</p>
522
523 <pre class="code">
524   void SetImageViewDescription(ImageView *image_view,
525     const char *description)
526 </pre>
527
528 <p>A description of each parameter follows:</p>
529
530 <h5>image_view</h5>
531 <p>the image view.</p>
532
533 <h5>description</h5>
534 <p>the image view description.</p>
535
536  </div>
537 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
538 <div class="doc-section">
539
540 <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>
541
542 <p>The callback signature is:</p>
543
544 <pre class="text">
545   MagickBooleanType SetImageViewMethod(ImageView *destination,
546     const ssize_t y,const int thread_id,void *context)
547 </pre>
548
549 <p>Use this pragma if the view is not single threaded:</p>
550
551 <pre class="text">
552       #pragma omp critical
553 </pre>
554
555 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
556
557 <p>The format of the SetImageViewIterator method is:</p>
558
559 <pre class="code">
560   MagickBooleanType SetImageViewIterator(ImageView *destination,
561     SetImageViewMethod set,void *context)
562 </pre>
563
564 <p>A description of each parameter follows:</p>
565
566 <h5>destination</h5>
567 <p>the image view.</p>
568
569 <h5>set</h5>
570 <p>the set callback method.</p>
571
572 <h5>context</h5>
573 <p>the user defined context.</p>
574
575  </div>
576 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
577 <div class="doc-section">
578
579 <p>SetImageViewThreads() sets the number of threads in a thread team.</p>
580
581 <p>The format of the SetImageViewDescription method is:</p>
582
583 <pre class="code">
584   void SetImageViewThreads(ImageView *image_view,
585     const size_t number_threads)
586 </pre>
587
588 <p>A description of each parameter follows:</p>
589
590 <h5>image_view</h5>
591 <p>the image view.</p>
592
593 <h5>number_threads</h5>
594 <p>the number of threads in a thread team.</p>
595
596  </div>
597 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
598 <div class="doc-section">
599
600 <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>
601
602 <p>The callback signature is:</p>
603
604 <pre class="text">
605   MagickBooleanType TransferImageViewMethod(const ImageView *source,
606     ImageView *destination,const ssize_t y,const int thread_id,
607     void *context)
608 </pre>
609
610 <p>Use this pragma if the view is not single threaded:</p>
611
612 <pre class="text">
613       #pragma omp critical
614 </pre>
615
616 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
617
618 <p>The format of the TransferImageViewIterator method is:</p>
619
620 <pre class="code">
621   MagickBooleanType TransferImageViewIterator(ImageView *source,
622     ImageView *destination,TransferImageViewMethod transfer,void *context)
623 </pre>
624
625 <p>A description of each parameter follows:</p>
626
627 <h5>source</h5>
628 <p>the source image view.</p>
629
630 <h5>destination</h5>
631 <p>the destination image view.</p>
632
633 <h5>transfer</h5>
634 <p>the transfer callback method.</p>
635
636 <h5>context</h5>
637 <p>the user defined context.</p>
638
639  </div>
640 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
641 <div class="doc-section">
642
643 <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>
644
645 <p>The callback signature is:</p>
646
647 <pre class="text">
648   MagickBooleanType UpdateImageViewMethod(ImageView *source,
649     const ssize_t y,const int thread_id,void *context)
650 </pre>
651
652 <p>Use this pragma if the view is not single threaded:</p>
653
654 <pre class="text">
655       #pragma omp critical
656 </pre>
657
658 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
659
660 <p>The format of the UpdateImageViewIterator method is:</p>
661
662 <pre class="code">
663   MagickBooleanType UpdateImageViewIterator(ImageView *source,
664     UpdateImageViewMethod update,void *context)
665 </pre>
666
667 <p>A description of each parameter follows:</p>
668
669 <h5>source</h5>
670 <p>the source image view.</p>
671
672 <h5>update</h5>
673 <p>the update callback method.</p>
674
675 <h5>context</h5>
676 <p>the user defined context.</p>
677
678  </div>
679 \r
680 </div>\r
681 \r
682 <div id="linkbar">\r
683     <span id="linkbar-west">&nbsp;</span>\r
684     <span id="linkbar-center">\r
685       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
686       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
687     </span>\r
688     <span id="linkbar-east">&nbsp;</span>\r
689   </div>\r
690   <div class="footer">\r
691     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
692     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
693   </div>\r
694   <div style="clear: both; margin: 0; width: 100%; "></div>\r
695   <script type="text/javascript">\r
696     var _gaq = _gaq || [];\r
697     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
698     _gaq.push(['_trackPageview']);\r
699 \r
700     (function() {\r
701       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
702       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
703       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
704     })();\r
705   </script>\r
706 </body>\r
707 </html>\r