]> 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 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="canonical" href="http://www.imagemagick.org" />\r
31   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
32   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />\r
33   <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
34   <style type="text/css" media="all">\r
35     @import url("../../www/magick.css");\r
36   </style>\r
37   <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>\r
38   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
39   <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
40   <script type="text/javascript">\r
41     $(document).ready(function() {\r
42       $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
43         'transitionIn'  : 'elastic',\r
44         'transitionOut' : 'elastic',\r
45         'overlayShow'   : false,\r
46         'opacity'       : true\r
47       });\r
48     });\r
49   </script>\r
50 </head>\r
51 \r
52 <body id="www-imagemagick-org">\r
53 <div class="titlebar">\r
54 <div style="margin: 17px auto; float: left;">\r
55   <script type="text/javascript">\r
56   <!--\r
57     google_ad_client = "pub-3129977114552745";\r
58     google_ad_slot = "5439289906";\r
59     google_ad_width = 728;\r
60     google_ad_height = 90;\r
61   //-->\r
62   </script>\r
63   <script type="text/javascript"\r
64     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
65   </script>\r
66 </div>\r
67 <a href="http://www.imagemagick.org/discourse-server/">\r
68   <img src="../../images/logo.jpg"\r
69   alt="ImageMagick Logo"\r
70   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>\r
71 <a href="../../index.html">\r
72   <img src="../../images/sprite.jpg"\r
73   alt="ImageMagick Sprite"\r
74   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
75 </div>\r
76 \r
77 <div class="westbar">\r
78 \r
79 <div class="menu">
80   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
81 </div>
82 <div class="menu">
83   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
84 </div>
85 <div class="sub">
86     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
87 </div>
88 <div class="sub">
89     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
90 </div>
91 <div class="sub">
92     <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
93 </div>
94 <div class="sub">
95     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
96 </div>
97 <div class="sep"></div>\r
98 <div class="menu">
99   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
100 </div>
101 <div class="sub">
102     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
103 </div>
104 <div class="sub">
105     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
106 </div>
107 <div class="sub">
108     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
109 </div>
110 <div class="menu">
111   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
112 </div>
113 <div class="sub">
114     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
115 </div>
116 <div class="sub">
117     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
118 </div>
119 <div class="sub">
120     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
121 </div>
122 <div class="sub">
123     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
124 </div>
125 <div class="sep"></div>\r
126 <div  class="menu">
127    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
128 </div>
129 <div class="sub">
130     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
131 </div>
132 <div class="sub">
133     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
134  </div>
135 <div class="menu">
136   <a title="Resources" href="../../www/resources.html">Resources</a>
137 </div>
138 <div class="menu">
139   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
140 </div>
141 <div class="menu">
142   <a title="Download" href="../../www/download.html">Download</a>
143 </div>
144 <div class="sep"></div>\r
145 <div class="menu">
146   <a title="Search" href="../../www/search.html">Search</a>
147 </div>
148 <div class="sep"></div>\r
149 <div class="menu">
150   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
151 </div>
152 <div  class="sub">
153   <a title="Site Map: Links" href="../../www/links.html">Links</a>
154 </div>
155 <div class="sep"></div>\r
156 <div  class="menu">
157   <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
158
159 <a href="http://www.networkredux.com">
160   <img src="../../images/networkredux.png" alt="[sponsor]"
161   style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
162 <div class="sponsbox">
163 <div  class="sponsor">
164   <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
165 </div>
166 <div  class="sponsor">
167   <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
168 </div>
169 <div  class="sponsor">
170   <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
171 </div>
172 <div  class="sponsor">
173   <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
174 </div>
175 <div  class="sponsor">
176   <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
177 </div>
178 <div  class="sponsor">
179   <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
180 </div>
181 <div  class="sponsor">
182   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
183 </div>
184 <div  class="sponsor">
185   <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
186 </div>
187 <div  class="sponsor">
188   <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
189 </div>
190 <div  class="sponsor">
191   <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
192 </div>
193 <div  class="sponsor">
194   <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
195 </div>
196 <div  class="sponsor">
197   <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
198 </div>
199 <div  class="sponsor">
200    <a rel="follow" title="Sponsor: Kaffeemaschinen reparatur" href="http://www.kaffeemaschinen-reparatur.de">Kaffeemaschinen reparatur</a><!-- 2011090100060 Temurbas atlas.multimedia-->
201 </div>
202 </div>
203 </div>
204 </div>\r
205 \r
206 <div class="eastbar">\r
207 <div style="margin: 9pt 9pt 9pt 9pt;">\r
208   <div class="g-plusone" data-size="standard" data-count="false"></div>\r
209 </div>\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="#GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</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="#GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</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="GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</a></h2>
299 <div class="doc-section">
300
301 <p>GetImageViewAuthenticMetacontent() returns the image view authentic meta-content.</p>
302
303 <p>The format of the GetImageViewAuthenticPixels method is:</p>
304
305 <pre class="code">
306   void *GetImageViewAuthenticMetacontent(
307     const ImageView *image_view)
308 </pre>
309
310 <p>A description of each parameter follows:</p>
311
312 <h5>image_view</h5>
313 <p>the image view.</p>
314
315  </div>
316 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
317 <div class="doc-section">
318
319 <p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
320
321 <p>The format of the GetImageViewAuthenticPixels method is:</p>
322
323 <pre class="code">
324   Quantum *GetImageViewAuthenticPixels(const ImageView *image_view)
325 </pre>
326
327 <p>A description of each parameter follows:</p>
328
329 <h5>image_view</h5>
330 <p>the image view.</p>
331
332  </div>
333 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
334 <div class="doc-section">
335
336 <p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
337
338 <p>The format of the GetImageViewException method is:</p>
339
340 <pre class="code">
341   char *GetImageViewException(const PixelImage *image_view,
342     ExceptionType *severity)
343 </pre>
344
345 <p>A description of each parameter follows:</p>
346
347 <h5>image_view</h5>
348 <p>the pixel image_view.</p>
349
350 <h5>severity</h5>
351 <p>the severity of the error is returned here.</p>
352
353  </div>
354 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
355 <div class="doc-section">
356
357 <p>GetImageViewExtent() returns the image view extent.</p>
358
359 <p>The format of the GetImageViewExtent method is:</p>
360
361 <pre class="code">
362   RectangleInfo GetImageViewExtent(const ImageView *image_view)
363 </pre>
364
365 <p>A description of each parameter follows:</p>
366
367 <h5>image_view</h5>
368 <p>the image view.</p>
369
370  </div>
371 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
372 <div class="doc-section">
373
374 <p>GetImageViewImage() returns the image associated with the image view.</p>
375
376 <p>The format of the GetImageViewImage method is:</p>
377
378 <pre class="code">
379   MagickCore *GetImageViewImage(const ImageView *image_view)
380 </pre>
381
382 <p>A description of each parameter follows:</p>
383
384 <h5>image_view</h5>
385 <p>the image view.</p>
386
387  </div>
388 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
389 <div class="doc-section">
390
391 <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>
392
393 <p>The callback signature is:</p>
394
395 <pre class="text">
396   MagickBooleanType GetImageViewMethod(const ImageView *source,
397     const ssize_t y,const int thread_id,void *context)
398 </pre>
399
400 <p>Use this pragma if the view is not single threaded:</p>
401
402 <pre class="text">
403       #pragma omp critical
404 </pre>
405
406 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
407
408 <p>The format of the GetImageViewIterator method is:</p>
409
410 <pre class="code">
411   MagickBooleanType GetImageViewIterator(ImageView *source,
412     GetImageViewMethod get,void *context)
413 </pre>
414
415 <p>A description of each parameter follows:</p>
416
417 <h5>source</h5>
418 <p>the source image view.</p>
419
420 <h5>get</h5>
421 <p>the get callback method.</p>
422
423 <h5>context</h5>
424 <p>the user defined context.</p>
425
426  </div>
427 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</a></h2>
428 <div class="doc-section">
429
430 <p>GetImageViewVirtualMetacontent() returns the image view virtual meta-content.</p>
431
432 <p>The format of the GetImageViewVirtualMetacontent method is:</p>
433
434 <pre class="code">
435   const void *GetImageViewVirtualMetacontent(
436     const ImageView *image_view)
437 </pre>
438
439 <p>A description of each parameter follows:</p>
440
441 <h5>image_view</h5>
442 <p>the image view.</p>
443
444  </div>
445 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
446 <div class="doc-section">
447
448 <p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
449
450 <p>The format of the GetImageViewVirtualPixels method is:</p>
451
452 <pre class="code">
453   const Quantum *GetImageViewVirtualPixels(const ImageView *image_view)
454 </pre>
455
456 <p>A description of each parameter follows:</p>
457
458 <h5>image_view</h5>
459 <p>the image view.</p>
460
461  </div>
462 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
463 <div class="doc-section">
464
465 <p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
466
467 <p>The format of the IsImageView method is:</p>
468
469 <pre class="code">
470   MagickBooleanType IsImageView(const ImageView *image_view)
471 </pre>
472
473 <p>A description of each parameter follows:</p>
474
475 <h5>image_view</h5>
476 <p>the image view.</p>
477
478  </div>
479 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
480 <div class="doc-section">
481
482 <p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
483
484 <p>The format of the NewImageView method is:</p>
485
486 <pre class="code">
487   ImageView *NewImageView(MagickCore *wand)
488 </pre>
489
490 <p>A description of each parameter follows:</p>
491
492 <h5>wand</h5>
493 <p>the wand.</p>
494
495  </div>
496 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
497 <div class="doc-section">
498
499 <p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
500
501 <p>The format of the NewImageViewRegion method is:</p>
502
503 <pre class="code">
504   ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
505     const ssize_t y,const size_t width,const size_t height)
506 </pre>
507
508 <p>A description of each parameter follows:</p>
509
510 <h5>wand</h5>
511 <p>the magick wand.</p>
512
513 <h5>x,y,columns,rows</h5>
514 <p>These values define the perimeter of a extent of pixel_wands view.</p>
515
516  </div>
517 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
518 <div class="doc-section">
519
520 <p>SetImageViewDescription() associates a description with an image view.</p>
521
522 <p>The format of the SetImageViewDescription method is:</p>
523
524 <pre class="code">
525   void SetImageViewDescription(ImageView *image_view,
526     const char *description)
527 </pre>
528
529 <p>A description of each parameter follows:</p>
530
531 <h5>image_view</h5>
532 <p>the image view.</p>
533
534 <h5>description</h5>
535 <p>the image view description.</p>
536
537  </div>
538 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
539 <div class="doc-section">
540
541 <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>
542
543 <p>The callback signature is:</p>
544
545 <pre class="text">
546   MagickBooleanType SetImageViewMethod(ImageView *destination,
547     const ssize_t y,const int thread_id,void *context)
548 </pre>
549
550 <p>Use this pragma if the view is not single threaded:</p>
551
552 <pre class="text">
553       #pragma omp critical
554 </pre>
555
556 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
557
558 <p>The format of the SetImageViewIterator method is:</p>
559
560 <pre class="code">
561   MagickBooleanType SetImageViewIterator(ImageView *destination,
562     SetImageViewMethod set,void *context)
563 </pre>
564
565 <p>A description of each parameter follows:</p>
566
567 <h5>destination</h5>
568 <p>the image view.</p>
569
570 <h5>set</h5>
571 <p>the set callback method.</p>
572
573 <h5>context</h5>
574 <p>the user defined context.</p>
575
576  </div>
577 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
578 <div class="doc-section">
579
580 <p>SetImageViewThreads() sets the number of threads in a thread team.</p>
581
582 <p>The format of the SetImageViewDescription method is:</p>
583
584 <pre class="code">
585   void SetImageViewThreads(ImageView *image_view,
586     const size_t number_threads)
587 </pre>
588
589 <p>A description of each parameter follows:</p>
590
591 <h5>image_view</h5>
592 <p>the image view.</p>
593
594 <h5>number_threads</h5>
595 <p>the number of threads in a thread team.</p>
596
597  </div>
598 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
599 <div class="doc-section">
600
601 <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>
602
603 <p>The callback signature is:</p>
604
605 <pre class="text">
606   MagickBooleanType TransferImageViewMethod(const ImageView *source,
607     ImageView *destination,const ssize_t y,const int thread_id,
608     void *context)
609 </pre>
610
611 <p>Use this pragma if the view is not single threaded:</p>
612
613 <pre class="text">
614       #pragma omp critical
615 </pre>
616
617 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
618
619 <p>The format of the TransferImageViewIterator method is:</p>
620
621 <pre class="code">
622   MagickBooleanType TransferImageViewIterator(ImageView *source,
623     ImageView *destination,TransferImageViewMethod transfer,void *context)
624 </pre>
625
626 <p>A description of each parameter follows:</p>
627
628 <h5>source</h5>
629 <p>the source image view.</p>
630
631 <h5>destination</h5>
632 <p>the destination image view.</p>
633
634 <h5>transfer</h5>
635 <p>the transfer callback method.</p>
636
637 <h5>context</h5>
638 <p>the user defined context.</p>
639
640  </div>
641 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
642 <div class="doc-section">
643
644 <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>
645
646 <p>The callback signature is:</p>
647
648 <pre class="text">
649   MagickBooleanType UpdateImageViewMethod(ImageView *source,
650     const ssize_t y,const int thread_id,void *context)
651 </pre>
652
653 <p>Use this pragma if the view is not single threaded:</p>
654
655 <pre class="text">
656       #pragma omp critical
657 </pre>
658
659 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
660
661 <p>The format of the UpdateImageViewIterator method is:</p>
662
663 <pre class="code">
664   MagickBooleanType UpdateImageViewIterator(ImageView *source,
665     UpdateImageViewMethod update,void *context)
666 </pre>
667
668 <p>A description of each parameter follows:</p>
669
670 <h5>source</h5>
671 <p>the source image view.</p>
672
673 <h5>update</h5>
674 <p>the update callback method.</p>
675
676 <h5>context</h5>
677 <p>the user defined context.</p>
678
679  </div>
680 \r
681 </div>\r
682 \r
683 <div id="linkbar">\r
684     <span id="linkbar-west">&nbsp;</span>\r
685     <span id="linkbar-center">\r
686       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
687       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
688     </span>\r
689     <span id="linkbar-east">&nbsp;</span>\r
690   </div>\r
691   <div class="footer">\r
692     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
693     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
694   </div>\r
695   <div style="clear: both; margin: 0; width: 100%; "></div>\r
696   <script type="text/javascript">\r
697     var _gaq = _gaq || [];\r
698     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
699     _gaq.push(['_trackPageview']);\r
700 \r
701     (function() {\r
702       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
703       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
704       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
705     })();\r
706   </script>\r
707 </body>\r
708 </html>\r