blob: e066efba493361d3c0c8228224be521acc3f7997 [file] [log] [blame]
cristydcca3fa2010-12-29 21:50:07 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
cristy2bd2a982011-02-15 00:52:58 +00003<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">
cristy10c87152010-06-26 16:12:21 +00008<head>
cristy3c98a4f2010-08-13 20:09:41 +00009 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
10 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +000011 <title>ImageMagick: MagickCore, C API for ImageMagick: Image View Methods</title>
cristy10c87152010-06-26 16:12:21 +000012 <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"/>
cristy3c98a4f2010-08-13 20:09:41 +000015 <meta name="Application-name" content="ImageMagick"/>
cristyaf8d6652011-02-04 21:57:45 +000016 <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."/>
cristy3c98a4f2010-08-13 20:09:41 +000017 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy10c87152010-06-26 16:12:21 +000018 <meta name="Generator" content="PHP"/>
19 <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, image, view, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
cristy10c87152010-06-26 16:12:21 +000020 <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"/>
cristy4103d562010-12-10 01:38:54 +000026 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy10c87152010-06-26 16:12:21 +000027 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000028 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000029 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
30 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy7a40ba82011-01-08 20:31:18 +000031 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy3c98a4f2010-08-13 20:09:41 +000032 <style type="text/css" media="all">
33 @import url("../../www/magick.css");
34 </style>
cristydcca3fa2010-12-29 21:50:07 +000035 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000036 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
37 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
38 <script type="text/javascript">
39 $(document).ready(function() {
40 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
41 'transitionIn' : 'elastic',
42 'transitionOut' : 'elastic',
43 'overlayShow' : false,
44 'opacity' : true
45 });
46 });
47 </script>
cristy10c87152010-06-26 16:12:21 +000048</head>
49
50<body id="www-imagemagick-org">
51<div class="titlebar">
cristyb52981c2011-03-19 17:09:31 +000052<div style="margin: 17px auto; float: left;">
53 <script type="text/javascript">
54 <!--
55 google_ad_client = "pub-3129977114552745";
56 google_ad_slot = "5439289906";
57 google_ad_width = 728;
58 google_ad_height = 90;
59 //-->
60 </script>
61 <script type="text/javascript"
62 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
63 </script>
64</div>
cristy10c87152010-06-26 16:12:21 +000065<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000066 <img src="../../images/logo.jpg"
67 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000068 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy10c87152010-06-26 16:12:21 +000069<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000070 <img src="../../images/sprite.jpg"
71 alt="ImageMagick Sprite"
cristy10c87152010-06-26 16:12:21 +000072 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
73</div>
74
cristyce69bb02010-07-27 19:49:46 +000075<div class="westbar">
cristy10c87152010-06-26 16:12:21 +000076
77<div class="menu">
78 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
79</div>
80<div class="sep"></div>
81<div class="menu">
82 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
83</div>
84<div class="sub">
85 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
86</div>
87<div class="sub">
88 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
89</div>
90<div class="sub">
cristyda16f162011-02-19 23:52:17 +000091 <a title="Binary Release: iPhone" href="../../www/binary-releases.html#iPhone">iPhone</a>
92</div>
93<div class="sub">
cristy10c87152010-06-26 16:12:21 +000094 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
95</div>
96<div class="sep"></div>
97<div class="menu">
98 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
99</div>
100<div class="sub">
101 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
102</div>
103<div class="sub">
104 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
105</div>
106<div class="sub">
107 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
108</div>
109<div class="menu">
110 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
111</div>
112<div class="sub">
113 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
114</div>
115<div class="sub">
116 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
117</div>
118<div class="sub">
119 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
120</div>
121<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000122 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy10c87152010-06-26 16:12:21 +0000123</div>
124<div class="sep"></div>
125<div class="menu">
126 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
127</div>
128<div class="sub">
129 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
130</div>
131<div class="sub">
132 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
133 </div>
134<div class="menu">
135 <a title="Resources" href="../../www/resources.html">Resources</a>
136</div>
137<div class="menu">
138 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
139</div>
140<div class="menu">
141 <a title="Download" href="../../www/download.html">Download</a>
142</div>
143<div class="sep"></div>
144<div class="menu">
cristy52923442011-01-15 22:54:31 +0000145 <a title="Search" href="../../www/search.html">Search</a>
cristy10c87152010-06-26 16:12:21 +0000146</div>
147<div class="sep"></div>
148<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000149 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy10c87152010-06-26 16:12:21 +0000150</div>
151<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000152 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy10c87152010-06-26 16:12:21 +0000153</div>
154<div class="sep"></div>
155<div class="menu">
cristy10549a12011-05-15 19:04:46 +0000156 <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy10c87152010-06-26 16:12:21 +0000157
cristyb52981c2011-03-19 17:09:31 +0000158<a href="http://www.networkredux.com">
159 <img src="../../images/networkredux.png" alt="[sponsor]"
160 style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
cristy10c87152010-06-26 16:12:21 +0000161<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000162<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000163 <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
164</div>
165<div class="sponsor">
166 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
167</div>
168<div class="sponsor">
169 <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
170</div>
171<div class="sponsor">
cristy4bf6e232011-05-21 01:43:33 +0000172 <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
cristy45dbd322011-03-27 16:40:38 +0000173</div>
174<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000175 <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
cristy4c54bbb2011-03-17 13:53:13 +0000176</div>
177<div class="sponsor">
cristy575d5ee2011-05-24 01:59:01 +0000178 <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
cristy4bf6e232011-05-21 01:43:33 +0000179</div>
180<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000181 <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
cristyaf8d6652011-02-04 21:57:45 +0000182</div>
183<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000184 <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
cristy73fd1cd2010-09-12 19:14:25 +0000185</div>
186<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000187 <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
cristyee742642011-02-26 02:49:59 +0000188</div>
189<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000190 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
cristy851dbce2010-08-06 21:40:00 +0000191</div>
cristyec6b4752011-01-08 03:16:23 +0000192<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000193 <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
cristybaacd172011-04-30 23:11:03 +0000194</div>
195<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000196 <a rel="follow" title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011080100030 autoteile-Carparts-->
cristyec6b4752011-01-08 03:16:23 +0000197</div>
cristy10c87152010-06-26 16:12:21 +0000198</div>
cristyce69bb02010-07-27 19:49:46 +0000199</div>
200</div>
cristy10c87152010-06-26 16:12:21 +0000201
cristyce69bb02010-07-27 19:49:46 +0000202<div class="eastbar">
cristyb52981c2011-03-19 17:09:31 +0000203
cristy10c87152010-06-26 16:12:21 +0000204</div>
205
206<div class="main">
207
cristy350dea42011-02-15 17:31:04 +0000208<h1>Module image-view Methods</h1>
cristy6f77f692011-02-15 15:31:39 +0000209<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>
cristy10c87152010-06-26 16:12:21 +0000210
cristy350dea42011-02-15 17:31:04 +0000211<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000212<div class="doc-section">
213
214<p>CloneImageView() makes a copy of the specified image view.</p>
215
216<p>The format of the CloneImageView method is:</p>
217
218<pre class="code">
219 ImageView *CloneImageView(const ImageView *image_view)
220</pre>
221
222<p>A description of each parameter follows:</p>
223
224<h5>image_view</h5>
225<p>the image view.</p>
226
227 </div>
cristy350dea42011-02-15 17:31:04 +0000228<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000229<div class="doc-section">
230
231<p>DestroyImageView() deallocates memory associated with a image view.</p>
232
233<p>The format of the DestroyImageView method is:</p>
234
235<pre class="code">
236 ImageView *DestroyImageView(ImageView *image_view)
237</pre>
238
239<p>A description of each parameter follows:</p>
240
241<h5>image_view</h5>
242<p>the image view.</p>
243
244 </div>
cristy350dea42011-02-15 17:31:04 +0000245<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000246<div class="doc-section">
247
248<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>
249
250<p>The callback signature is:</p>
251
252<pre class="text">
253 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
254 const ImageView *duplex,ImageView *destination,const ssize_t y,
255 const int thread_id,void *context)
256</pre>
257
258<p>Use this pragma if the view is not single threaded:</p>
259
260<pre class="text">
261 #pragma omp critical
262</pre>
263
264<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
265
266<p>The format of the DuplexTransferImageViewIterator method is:</p>
267
268<pre class="code">
269 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
270 ImageView *duplex,ImageView *destination,
271 DuplexTransferImageViewMethod transfer,void *context)
272</pre>
273
274<p>A description of each parameter follows:</p>
275
276<h5>source</h5>
277<p>the source image view.</p>
278
279<h5>duplex</h5>
280<p>the duplex image view.</p>
281
282<h5>destination</h5>
283<p>the destination image view.</p>
284
285<h5>transfer</h5>
286<p>the transfer callback method.</p>
287
288<h5>context</h5>
289<p>the user defined context.</p>
290
291 </div>
cristy350dea42011-02-15 17:31:04 +0000292<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000293<div class="doc-section">
294
295<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
296
297<p>The format of the GetImageViewAuthenticPixels method is:</p>
298
299<pre class="code">
300 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
301</pre>
302
303<p>A description of each parameter follows:</p>
304
305<h5>image_view</h5>
306<p>the image view.</p>
307
308 </div>
cristy350dea42011-02-15 17:31:04 +0000309<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000310<div class="doc-section">
311
312<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
313
314<p>The format of the GetImageViewAuthenticPixels method is:</p>
315
316<pre class="code">
317 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
318</pre>
319
320<p>A description of each parameter follows:</p>
321
322<h5>image_view</h5>
323<p>the image view.</p>
324
325 </div>
cristy350dea42011-02-15 17:31:04 +0000326<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000327<div class="doc-section">
328
329<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
330
331<p>The format of the GetImageViewException method is:</p>
332
333<pre class="code">
334 char *GetImageViewException(const PixelImage *image_view,
335 ExceptionType *severity)
336</pre>
337
338<p>A description of each parameter follows:</p>
339
340<h5>image_view</h5>
341<p>the pixel image_view.</p>
342
343<h5>severity</h5>
344<p>the severity of the error is returned here.</p>
345
346 </div>
cristy350dea42011-02-15 17:31:04 +0000347<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000348<div class="doc-section">
349
350<p>GetImageViewExtent() returns the image view extent.</p>
351
352<p>The format of the GetImageViewExtent method is:</p>
353
354<pre class="code">
355 RectangleInfo GetImageViewExtent(const ImageView *image_view)
356</pre>
357
358<p>A description of each parameter follows:</p>
359
360<h5>image_view</h5>
361<p>the image view.</p>
362
363 </div>
cristy350dea42011-02-15 17:31:04 +0000364<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000365<div class="doc-section">
366
367<p>GetImageViewImage() returns the image associated with the image view.</p>
368
369<p>The format of the GetImageViewImage method is:</p>
370
371<pre class="code">
372 MagickCore *GetImageViewImage(const ImageView *image_view)
373</pre>
374
375<p>A description of each parameter follows:</p>
376
377<h5>image_view</h5>
378<p>the image view.</p>
379
380 </div>
cristy350dea42011-02-15 17:31:04 +0000381<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000382<div class="doc-section">
383
384<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>
385
386<p>The callback signature is:</p>
387
388<pre class="text">
389 MagickBooleanType GetImageViewMethod(const ImageView *source,
390 const ssize_t y,const int thread_id,void *context)
391</pre>
392
393<p>Use this pragma if the view is not single threaded:</p>
394
395<pre class="text">
396 #pragma omp critical
397</pre>
398
399<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
400
401<p>The format of the GetImageViewIterator method is:</p>
402
403<pre class="code">
404 MagickBooleanType GetImageViewIterator(ImageView *source,
405 GetImageViewMethod get,void *context)
406</pre>
407
408<p>A description of each parameter follows:</p>
409
410<h5>source</h5>
411<p>the source image view.</p>
412
413<h5>get</h5>
414<p>the get callback method.</p>
415
416<h5>context</h5>
417<p>the user defined context.</p>
418
419 </div>
cristy350dea42011-02-15 17:31:04 +0000420<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000421<div class="doc-section">
422
423<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
424
425<p>The format of the GetImageViewVirtualIndexes method is:</p>
426
427<pre class="code">
428 const IndexPacket *GetImageViewVirtualIndexes(
429 const ImageView *image_view)
430</pre>
431
432<p>A description of each parameter follows:</p>
433
434<h5>image_view</h5>
435<p>the image view.</p>
436
437 </div>
cristy350dea42011-02-15 17:31:04 +0000438<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000439<div class="doc-section">
440
441<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
442
443<p>The format of the GetImageViewVirtualPixels method is:</p>
444
445<pre class="code">
446 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
447</pre>
448
449<p>A description of each parameter follows:</p>
450
451<h5>image_view</h5>
452<p>the image view.</p>
453
454 </div>
cristy350dea42011-02-15 17:31:04 +0000455<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000456<div class="doc-section">
457
458<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
459
460<p>The format of the IsImageView method is:</p>
461
462<pre class="code">
463 MagickBooleanType IsImageView(const ImageView *image_view)
464</pre>
465
466<p>A description of each parameter follows:</p>
467
468<h5>image_view</h5>
469<p>the image view.</p>
470
471 </div>
cristy350dea42011-02-15 17:31:04 +0000472<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000473<div class="doc-section">
474
475<p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
476
477<p>The format of the NewImageView method is:</p>
478
479<pre class="code">
480 ImageView *NewImageView(MagickCore *wand)
481</pre>
482
483<p>A description of each parameter follows:</p>
484
485<h5>wand</h5>
486<p>the wand.</p>
487
488 </div>
cristy350dea42011-02-15 17:31:04 +0000489<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000490<div class="doc-section">
491
492<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
493
494<p>The format of the NewImageViewRegion method is:</p>
495
496<pre class="code">
497 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
498 const ssize_t y,const size_t width,const size_t height)
499</pre>
500
501<p>A description of each parameter follows:</p>
502
503<h5>wand</h5>
504<p>the magick wand.</p>
505
506<h5>x,y,columns,rows</h5>
507<p>These values define the perimeter of a extent of pixel_wands view.</p>
508
509 </div>
cristy350dea42011-02-15 17:31:04 +0000510<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000511<div class="doc-section">
512
513<p>SetImageViewDescription() associates a description with an image view.</p>
514
515<p>The format of the SetImageViewDescription method is:</p>
516
517<pre class="code">
518 void SetImageViewDescription(ImageView *image_view,
519 const char *description)
520</pre>
521
522<p>A description of each parameter follows:</p>
523
524<h5>image_view</h5>
525<p>the image view.</p>
526
527<h5>description</h5>
528<p>the image view description.</p>
529
530 </div>
cristy350dea42011-02-15 17:31:04 +0000531<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000532<div class="doc-section">
533
534<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>
535
536<p>The callback signature is:</p>
537
538<pre class="text">
539 MagickBooleanType SetImageViewMethod(ImageView *destination,
540 const ssize_t y,const int thread_id,void *context)
541</pre>
542
543<p>Use this pragma if the view is not single threaded:</p>
544
545<pre class="text">
546 #pragma omp critical
547</pre>
548
549<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
550
551<p>The format of the SetImageViewIterator method is:</p>
552
553<pre class="code">
554 MagickBooleanType SetImageViewIterator(ImageView *destination,
555 SetImageViewMethod set,void *context)
556</pre>
557
558<p>A description of each parameter follows:</p>
559
560<h5>destination</h5>
561<p>the image view.</p>
562
563<h5>set</h5>
564<p>the set callback method.</p>
565
566<h5>context</h5>
567<p>the user defined context.</p>
568
569 </div>
cristy350dea42011-02-15 17:31:04 +0000570<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000571<div class="doc-section">
572
573<p>SetImageViewThreads() sets the number of threads in a thread team.</p>
574
575<p>The format of the SetImageViewDescription method is:</p>
576
577<pre class="code">
578 void SetImageViewThreads(ImageView *image_view,
579 const size_t number_threads)
580</pre>
581
582<p>A description of each parameter follows:</p>
583
584<h5>image_view</h5>
585<p>the image view.</p>
586
587<h5>number_threads</h5>
588<p>the number of threads in a thread team.</p>
589
590 </div>
cristy350dea42011-02-15 17:31:04 +0000591<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000592<div class="doc-section">
593
594<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>
595
596<p>The callback signature is:</p>
597
598<pre class="text">
599 MagickBooleanType TransferImageViewMethod(const ImageView *source,
600 ImageView *destination,const ssize_t y,const int thread_id,
601 void *context)
602</pre>
603
604<p>Use this pragma if the view is not single threaded:</p>
605
606<pre class="text">
607 #pragma omp critical
608</pre>
609
610<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
611
612<p>The format of the TransferImageViewIterator method is:</p>
613
614<pre class="code">
615 MagickBooleanType TransferImageViewIterator(ImageView *source,
616 ImageView *destination,TransferImageViewMethod transfer,void *context)
617</pre>
618
619<p>A description of each parameter follows:</p>
620
621<h5>source</h5>
622<p>the source image view.</p>
623
624<h5>destination</h5>
625<p>the destination image view.</p>
626
627<h5>transfer</h5>
628<p>the transfer callback method.</p>
629
630<h5>context</h5>
631<p>the user defined context.</p>
632
633 </div>
cristy350dea42011-02-15 17:31:04 +0000634<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000635<div class="doc-section">
636
637<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>
638
639<p>The callback signature is:</p>
640
641<pre class="text">
642 MagickBooleanType UpdateImageViewMethod(ImageView *source,
643 const ssize_t y,const int thread_id,void *context)
644</pre>
645
646<p>Use this pragma if the view is not single threaded:</p>
647
648<pre class="text">
649 #pragma omp critical
650</pre>
651
652<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
653
654<p>The format of the UpdateImageViewIterator method is:</p>
655
656<pre class="code">
657 MagickBooleanType UpdateImageViewIterator(ImageView *source,
658 UpdateImageViewMethod update,void *context)
659</pre>
660
661<p>A description of each parameter follows:</p>
662
663<h5>source</h5>
664<p>the source image view.</p>
665
666<h5>update</h5>
667<p>the update callback method.</p>
668
669<h5>context</h5>
670<p>the user defined context.</p>
671
672 </div>
cristy10c87152010-06-26 16:12:21 +0000673
674</div>
675
676<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000677 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000678 <span id="linkbar-center">
679 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000680 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000681 </span>
682 <span id="linkbar-east">&nbsp;</span>
683 </div>
684 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000685 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy10c87152010-06-26 16:12:21 +0000686 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
687 </div>
688 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000689 <script type="text/javascript">
690 var _gaq = _gaq || [];
691 _gaq.push(['_setAccount', 'UA-17690367-1']);
692 _gaq.push(['_trackPageview']);
693
694 (function() {
695 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
696 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
697 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
698 })();
699 </script>
cristy10c87152010-06-26 16:12:21 +0000700</body>
701</html>