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