]> granicus.if.org Git - imagemagick/blob - www/api/image-view.html
e3ab1d7354f4e5ee6a11b1cbb6c4eddae417b022
[imagemagick] / www / api / image-view.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
2   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html version="-//W3C//DTD XHTML 1.1//EN"
4       xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
5       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6       xsi:schemaLocation="http://www.w3.org/1999/xhtml
7                           http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
8 <head>
9   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
10   <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>
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, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"/>
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-2012 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" />
31   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
32   <!-- Add jQuery library -->
33   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
34   
35   <!-- Optionaly include easing and/or mousewheel plugins -->
36   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.easing-1.3.pack.js"></script>
37   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.mousewheel-3.0.6.pack.js"></script>
38   
39   <!-- Add fancyBox -->
40   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/jquery.fancybox.css?v=2.0.4" type="text/css" media="screen" />
41   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.fancybox.pack.js?v=2.0.4"></script>
42   
43   <!-- Optionaly include button and/or thumbnail helpers -->
44   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.css?v=2.0.4" type="text/css" media="screen" />
45   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.js?v=2.0.4"></script>
46   
47   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.css?v=2.0.4" type="text/css" media="screen" />
48   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.js?v=2.0.4"></script>
49   <script type="text/javascript">
50         $(document).ready(function() {
51                 $(".fancybox").fancybox();
52         });
53   </script>
54   <!-- ImageMagick style -->
55   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
56   <style type="text/css" media="all">
57     @import url("../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick.css");
58   </style>
59 </head>
60
61 <body id="www-imagemagick-org">
62 <div class="titlebar">
63 <div style="margin: 17px auto; float: left;">
64   <script type="text/javascript">
65   <!--
66     google_ad_client = "pub-3129977114552745";
67     google_ad_slot = "5439289906";
68     google_ad_width = 728;
69     google_ad_height = 90;
70   //-->
71   </script>
72   <script type="text/javascript"
73     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
74   </script>
75 </div>
76 <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../discourse-server">
77   <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/logo.jpg"
78   alt="ImageMagick Logo"
79   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
80 <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../index.html">
81   <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/sprite.jpg"
82   alt="ImageMagick Sprite"
83   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
84 </div>
85
86 <div class="westbar">
87
88 <div class="menu">
89   <a title="About ImageMagick" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../index.html">About ImageMagick</a>
90 </div>
91 <div class="menu">
92   <a title="Binary Releases" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html">Binary Releases</a>
93 </div>
94 <div class="sub">
95     <a title="Binary Release: Unix" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#unix">Unix</a>
96 </div>
97 <div class="sub">
98     <a title="Binary Release: MacOS X" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#macosx">Mac OS X</a>
99 </div>
100 <div class="sub">
101     <a title="Binary Release: iOS" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#iOS">iOS</a>
102 </div>
103 <div class="sub">
104     <a title="Binary Release: Windows" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#windows">Windows</a>
105 </div>
106 <div class="sep"></div>
107 <div class="menu">
108   <a title="Command-line Tools" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-tools.html">Command-line Tools</a>
109 </div>
110 <div class="sub">
111     <a title="Command-line Tools: Processing" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-processing.html">Processing</a>
112 </div>
113 <div class="sub">
114     <a title="Command-line Tools: Options" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-options.html">Options</a>
115 </div>
116 <div class="sub">
117     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
118 </div>
119 <div class="menu">
120   <a title="Program Interfaces" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/api.html">Program Interfaces</a>
121 </div>
122 <div class="sub">
123     <a title="Program Interface: MagickWand" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick-wand.html">MagickWand</a>
124 </div>
125 <div class="sub">
126     <a title="Program Interface: MagickCore" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick-core.html">MagickCore</a>
127 </div>
128 <div class="sub">
129     <a title="Program Interface: PerlMagick" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/perl-magick.html">PerlMagick</a>
130 </div>
131 <div class="sub">
132     <a title="Program Interface: Magick++" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick++.html">Magick++</a>
133 </div>
134 <div class="sep"></div>
135 <div  class="menu">
136    <a title="Install from Source" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html">Install from Source</a>
137 </div>
138 <div class="sub">
139     <a title="Install from Source: Unix" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html#unix">Unix</a>
140 </div>
141 <div class="sub">
142     <a title="Install from Source: Windows" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html#windows">Windows</a>
143  </div>
144 <div class="menu">
145   <a title="Resources" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/resources.html">Resources</a>
146 </div>
147 <div class="menu">
148   <a title="Architecture" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/architecture.html">Architecture</a>
149 </div>
150 <div class="menu">
151   <a title="Download" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/download.html">Download</a>
152 </div>
153 <div class="sep"></div>
154 <div class="menu">
155   <a title="Search" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/search.html">Search</a>
156 </div>
157 <div class="sep"></div>
158 <div class="menu">
159   <a title="Site Map" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/sitemap.html">Site Map</a>
160 </div>
161 <div  class="sub">
162   <a title="Site Map: Links" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/links.html">Links</a>
163 </div>
164 <div class="sep"></div>
165 <div class="menu">
166   <a rel="follow" title="Sponsors" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/sponsors.html">Sponsors:</a>
167
168   <a href="http://www.networkredux.com"> <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/networkredux.png" width="140" height="31" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
169   <a href="http://www.dinodirect.com/ipads-tablets/"> <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/dino-direct.jpg" width="140" height="90" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a><!-- 201208010120 mickey@163... -->
170 <div class="sponsbox">
171 <div class="sponsor">
172   <a rel="follow" title="Sponsor: The Fastest &amp; Easiest Way to Find Images" href="http://www.graphicsfactory.com">The Fastest &amp; Easiest Way to Find Images</a><!-- 201210010270 graphicsfac... -->
173 </div>
174 <div class="sponsor">
175   <a rel="follow" title="Sponsor: VPS" href="http://www.interdominios.com/vps">VPS</a><!-- 201209010090 barsh@inter... -->
176 </div>
177 <div class="sponsor">
178   <a rel="follow" title="Werbebanner Werbeplane" href="http://www.allesbanner.de">Werbebanner Werbeplane</a><!-- 201212010450 info@druck... -->
179 </div>
180 <div class="sponsor">
181   <a rel="follow" title="Entertainment News &amp; Photos" href="http://www.zimbio.com">Entertainment News &amp; Photos</a><!-- 201211010540 bd@zimb... -->
182 </div>
183 <div class="sponsor">
184   <a rel="follow" title="Sponsor: LED24" href="http://led24.de/">LED24</a><!-- 201207010270 info@led24... -->
185 </div>
186 <div class="sponsor">
187   <a rel="follow" title="Sponsor: Best Website Hosting" href="http://www.top-cheap-web-hosting.com">Best Website Hosting</a><!-- 201304010090 eunge.liu-->
188 </div>
189 <div class="sponsor">
190   <a rel="follow" title="Android Tablet" href="http://www.dinodirect.com/ipads-tablets/">Android Tablet</a><!-- 201208010120 mickey@163... -->
191 </div>
192 <div class="sponsor">
193   <a rel="follow" title="Sponsor: Web Site Hosting" href="http://webhostinggeeks.com">Web Site Hosting</a><!-- 201302010900 funds@enmob... -->
194 </div>
195 <div class="sponsor">
196    <a rel="follow" title="Sponsor: Premium Quality Stock Photos" href="http://www.f1online.pro/en/">Premium Quality Stock Photos</a><!-- 2012080100540 ... -->
197 </div>
198 <div class="sponsor">
199    <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 2012070100250 ... -->
200 </div>
201 <div class="sponsor">
202   <a rel="follow" title="Sponsor: Managed Server" href="http://www.robhost.de">Managed Server</a><!-- 201210010720 klikics... -->
203 </div>
204 <div class="sponsor">
205   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
206 </div>
207 <div class="sponsor">
208    <a rel="follow" title="Sponsor: Notebook Reparatur" href="http://www.notebook-reparaturen-berlin.de">Notebook Reparatur</a><!-- 2012080100300 atlas-multimedia-->
209 </div>
210 <div class="sponsor">
211    <a rel="follow" title="Sponsor: Web Hosting" href="http://www.hostucan.com">Web Hosting</a><!-- 2012120100150 racent marketing@webhosting...-->
212 </div>
213 </div>
214 </div>
215 </div>
216
217 <div class="eastbar">
218   <div class="g-plusone" id="gplusone"></div>
219   <script type="text/javascript">
220     window.___gcfg = {
221       lang: 'en-US'
222     };
223
224     (function() {
225       var po = document.createElement('script');
226       po.type = 'text/javascript'; po.async = true;
227       po.src = 'https://apis.google.com/js/plusone.js';
228       var script = document.getElementsByTagName('script')[0];
229       script.parentNode.insertBefore(po, script);
230     })();
231     var gplusone = document.getElementById("gplusone");
232     gplusone.setAttribute("data-size","medium");
233     gplusone.setAttribute("data-count","false");
234   </script>
235 </div>
236
237 <div class="main">
238
239 <h1>Module image-view Methods</h1>
240 <p class="navigation-index">[<a href="image-view.html#CloneImageView">CloneImageView</a> &bull; <a href="image-view.html#DestroyImageView">DestroyImageView</a> &bull; <a href="image-view.html#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> &bull; <a href="image-view.html#GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a> &bull; <a href="image-view.html#GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a> &bull; <a href="image-view.html#GetImageViewException">GetImageViewException</a> &bull; <a href="image-view.html#GetImageViewExtent">GetImageViewExtent</a> &bull; <a href="image-view.html#GetImageViewImage">GetImageViewImage</a> &bull; <a href="image-view.html#GetImageViewIterator">GetImageViewIterator</a> &bull; <a href="image-view.html#GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a> &bull; <a href="image-view.html#GetImageViewVirtualPixels">GetImageViewVirtualPixels</a> &bull; <a href="image-view.html#IsImageView">IsImageView</a> &bull; <a href="image-view.html#NewImageView">NewImageView</a> &bull; <a href="image-view.html#NewImageViewRegion">NewImageViewRegion</a> &bull; <a href="image-view.html#SetImageViewDescription">SetImageViewDescription</a> &bull; <a href="image-view.html#SetImageViewIterator">SetImageViewIterator</a> &bull; <a href="image-view.html#SetImageViewThreads">SetImageViewThreads</a> &bull; <a href="image-view.html#TransferImageViewIterator">TransferImageViewIterator</a> &bull; <a href="image-view.html#UpdateImageViewIterator">UpdateImageViewIterator</a>]</p>
241
242 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
243 <div class="doc-section">
244
245 <p>CloneImageView() makes a copy of the specified image view.</p>
246
247 <p>The format of the CloneImageView method is:</p>
248
249 <pre class="code">
250   ImageView *CloneImageView(const ImageView *image_view)
251 </pre>
252
253 <p>A description of each parameter follows:</p>
254
255 <h5>image_view</h5>
256 <p>the image view.</p>
257
258  </div>
259 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
260 <div class="doc-section">
261
262 <p>DestroyImageView() deallocates memory associated with a image view.</p>
263
264 <p>The format of the DestroyImageView method is:</p>
265
266 <pre class="code">
267   ImageView *DestroyImageView(ImageView *image_view)
268 </pre>
269
270 <p>A description of each parameter follows:</p>
271
272 <h5>image_view</h5>
273 <p>the image view.</p>
274
275  </div>
276 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
277 <div class="doc-section">
278
279 <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>
280
281 <p>The callback signature is:</p>
282
283 <pre class="text">
284   MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
285     const ImageView *duplex,ImageView *destination,const ssize_t y,
286     const int thread_id,void *context)
287 </pre>
288
289 <p>Use this pragma if the view is not single threaded:</p>
290
291 <pre class="text">
292       #pragma omp critical
293 </pre>
294
295 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
296
297 <p>The format of the DuplexTransferImageViewIterator method is:</p>
298
299 <pre class="code">
300   MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
301     ImageView *duplex,ImageView *destination,
302     DuplexTransferImageViewMethod transfer,void *context)
303 </pre>
304
305 <p>A description of each parameter follows:</p>
306
307 <h5>source</h5>
308 <p>the source image view.</p>
309
310 <h5>duplex</h5>
311 <p>the duplex image view.</p>
312
313 <h5>destination</h5>
314 <p>the destination image view.</p>
315
316 <h5>transfer</h5>
317 <p>the transfer callback method.</p>
318
319 <h5>context</h5>
320 <p>the user defined context.</p>
321
322  </div>
323 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
324 <div class="doc-section">
325
326 <p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
327
328 <p>The format of the GetImageViewAuthenticPixels method is:</p>
329
330 <pre class="code">
331   IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
332 </pre>
333
334 <p>A description of each parameter follows:</p>
335
336 <h5>image_view</h5>
337 <p>the image view.</p>
338
339  </div>
340 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
341 <div class="doc-section">
342
343 <p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
344
345 <p>The format of the GetImageViewAuthenticPixels method is:</p>
346
347 <pre class="code">
348   PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
349 </pre>
350
351 <p>A description of each parameter follows:</p>
352
353 <h5>image_view</h5>
354 <p>the image view.</p>
355
356  </div>
357 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
358 <div class="doc-section">
359
360 <p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
361
362 <p>The format of the GetImageViewException method is:</p>
363
364 <pre class="code">
365   char *GetImageViewException(const PixelImage *image_view,
366     ExceptionType *severity)
367 </pre>
368
369 <p>A description of each parameter follows:</p>
370
371 <h5>image_view</h5>
372 <p>the pixel image_view.</p>
373
374 <h5>severity</h5>
375 <p>the severity of the error is returned here.</p>
376
377  </div>
378 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
379 <div class="doc-section">
380
381 <p>GetImageViewExtent() returns the image view extent.</p>
382
383 <p>The format of the GetImageViewExtent method is:</p>
384
385 <pre class="code">
386   RectangleInfo GetImageViewExtent(const ImageView *image_view)
387 </pre>
388
389 <p>A description of each parameter follows:</p>
390
391 <h5>image_view</h5>
392 <p>the image view.</p>
393
394  </div>
395 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
396 <div class="doc-section">
397
398 <p>GetImageViewImage() returns the image associated with the image view.</p>
399
400 <p>The format of the GetImageViewImage method is:</p>
401
402 <pre class="code">
403   MagickCore *GetImageViewImage(const ImageView *image_view)
404 </pre>
405
406 <p>A description of each parameter follows:</p>
407
408 <h5>image_view</h5>
409 <p>the image view.</p>
410
411  </div>
412 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
413 <div class="doc-section">
414
415 <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>
416
417 <p>The callback signature is:</p>
418
419 <pre class="text">
420   MagickBooleanType GetImageViewMethod(const ImageView *source,
421     const ssize_t y,const int thread_id,void *context)
422 </pre>
423
424 <p>Use this pragma if the view is not single threaded:</p>
425
426 <pre class="text">
427       #pragma omp critical
428 </pre>
429
430 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
431
432 <p>The format of the GetImageViewIterator method is:</p>
433
434 <pre class="code">
435   MagickBooleanType GetImageViewIterator(ImageView *source,
436     GetImageViewMethod get,void *context)
437 </pre>
438
439 <p>A description of each parameter follows:</p>
440
441 <h5>source</h5>
442 <p>the source image view.</p>
443
444 <h5>get</h5>
445 <p>the get callback method.</p>
446
447 <h5>context</h5>
448 <p>the user defined context.</p>
449
450  </div>
451 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
452 <div class="doc-section">
453
454 <p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
455
456 <p>The format of the GetImageViewVirtualIndexes method is:</p>
457
458 <pre class="code">
459   const IndexPacket *GetImageViewVirtualIndexes(
460     const ImageView *image_view)
461 </pre>
462
463 <p>A description of each parameter follows:</p>
464
465 <h5>image_view</h5>
466 <p>the image view.</p>
467
468  </div>
469 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
470 <div class="doc-section">
471
472 <p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
473
474 <p>The format of the GetImageViewVirtualPixels method is:</p>
475
476 <pre class="code">
477   const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
478 </pre>
479
480 <p>A description of each parameter follows:</p>
481
482 <h5>image_view</h5>
483 <p>the image view.</p>
484
485  </div>
486 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
487 <div class="doc-section">
488
489 <p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
490
491 <p>The format of the IsImageView method is:</p>
492
493 <pre class="code">
494   MagickBooleanType IsImageView(const ImageView *image_view)
495 </pre>
496
497 <p>A description of each parameter follows:</p>
498
499 <h5>image_view</h5>
500 <p>the image view.</p>
501
502  </div>
503 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
504 <div class="doc-section">
505
506 <p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
507
508 <p>The format of the NewImageView method is:</p>
509
510 <pre class="code">
511   ImageView *NewImageView(MagickCore *wand)
512 </pre>
513
514 <p>A description of each parameter follows:</p>
515
516 <h5>wand</h5>
517 <p>the wand.</p>
518
519  </div>
520 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
521 <div class="doc-section">
522
523 <p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
524
525 <p>The format of the NewImageViewRegion method is:</p>
526
527 <pre class="code">
528   ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
529     const ssize_t y,const size_t width,const size_t height)
530 </pre>
531
532 <p>A description of each parameter follows:</p>
533
534 <h5>wand</h5>
535 <p>the magick wand.</p>
536
537 <h5>x,y,columns,rows</h5>
538 <p>These values define the perimeter of a extent of pixel_wands view.</p>
539
540  </div>
541 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
542 <div class="doc-section">
543
544 <p>SetImageViewDescription() associates a description with an image view.</p>
545
546 <p>The format of the SetImageViewDescription method is:</p>
547
548 <pre class="code">
549   void SetImageViewDescription(ImageView *image_view,
550     const char *description)
551 </pre>
552
553 <p>A description of each parameter follows:</p>
554
555 <h5>image_view</h5>
556 <p>the image view.</p>
557
558 <h5>description</h5>
559 <p>the image view description.</p>
560
561  </div>
562 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
563 <div class="doc-section">
564
565 <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>
566
567 <p>The callback signature is:</p>
568
569 <pre class="text">
570   MagickBooleanType SetImageViewMethod(ImageView *destination,
571     const ssize_t y,const int thread_id,void *context)
572 </pre>
573
574 <p>Use this pragma if the view is not single threaded:</p>
575
576 <pre class="text">
577       #pragma omp critical
578 </pre>
579
580 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
581
582 <p>The format of the SetImageViewIterator method is:</p>
583
584 <pre class="code">
585   MagickBooleanType SetImageViewIterator(ImageView *destination,
586     SetImageViewMethod set,void *context)
587 </pre>
588
589 <p>A description of each parameter follows:</p>
590
591 <h5>destination</h5>
592 <p>the image view.</p>
593
594 <h5>set</h5>
595 <p>the set callback method.</p>
596
597 <h5>context</h5>
598 <p>the user defined context.</p>
599
600  </div>
601 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
602 <div class="doc-section">
603
604 <p>SetImageViewThreads() sets the number of threads in a thread team.</p>
605
606 <p>The format of the SetImageViewDescription method is:</p>
607
608 <pre class="code">
609   void SetImageViewThreads(ImageView *image_view,
610     const size_t number_threads)
611 </pre>
612
613 <p>A description of each parameter follows:</p>
614
615 <h5>image_view</h5>
616 <p>the image view.</p>
617
618 <h5>number_threads</h5>
619 <p>the number of threads in a thread team.</p>
620
621  </div>
622 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
623 <div class="doc-section">
624
625 <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>
626
627 <p>The callback signature is:</p>
628
629 <pre class="text">
630   MagickBooleanType TransferImageViewMethod(const ImageView *source,
631     ImageView *destination,const ssize_t y,const int thread_id,
632     void *context)
633 </pre>
634
635 <p>Use this pragma if the view is not single threaded:</p>
636
637 <pre class="text">
638       #pragma omp critical
639 </pre>
640
641 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
642
643 <p>The format of the TransferImageViewIterator method is:</p>
644
645 <pre class="code">
646   MagickBooleanType TransferImageViewIterator(ImageView *source,
647     ImageView *destination,TransferImageViewMethod transfer,void *context)
648 </pre>
649
650 <p>A description of each parameter follows:</p>
651
652 <h5>source</h5>
653 <p>the source image view.</p>
654
655 <h5>destination</h5>
656 <p>the destination image view.</p>
657
658 <h5>transfer</h5>
659 <p>the transfer callback method.</p>
660
661 <h5>context</h5>
662 <p>the user defined context.</p>
663
664  </div>
665 <h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
666 <div class="doc-section">
667
668 <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>
669
670 <p>The callback signature is:</p>
671
672 <pre class="text">
673   MagickBooleanType UpdateImageViewMethod(ImageView *source,
674     const ssize_t y,const int thread_id,void *context)
675 </pre>
676
677 <p>Use this pragma if the view is not single threaded:</p>
678
679 <pre class="text">
680       #pragma omp critical
681 </pre>
682
683 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
684
685 <p>The format of the UpdateImageViewIterator method is:</p>
686
687 <pre class="code">
688   MagickBooleanType UpdateImageViewIterator(ImageView *source,
689     UpdateImageViewMethod update,void *context)
690 </pre>
691
692 <p>A description of each parameter follows:</p>
693
694 <h5>source</h5>
695 <p>the source image view.</p>
696
697 <h5>update</h5>
698 <p>the update callback method.</p>
699
700 <h5>context</h5>
701 <p>the user defined context.</p>
702
703  </div>
704
705 </div>
706
707 <div id="linkbar">
708     <span id="linkbar-west">&nbsp;</span>
709     <span id="linkbar-center">
710       <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../discourse-server">Discourse Server</a> &bull;
711       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
712     </span>
713     <span id="linkbar-east">&nbsp;</span>
714   </div>
715   <div class="footer">
716     <span id="footer-west">&copy; 1999-2012 ImageMagick Studio LLC</span>
717     <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
718   </div>
719   <div style="clear: both; margin: 0; width: 100%; "></div>
720   <script type="text/javascript">
721     var _gaq = _gaq || [];
722     _gaq.push(['_setAccount', 'UA-17690367-1']);
723     _gaq.push(['_trackPageview']);
724
725     (function() {
726       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
727       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
728       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
729     })();
730   </script>
731 </body>
732 </html>