blob: cfe0f793399eb2059c16d106e7f66b0f70567ae9 [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"/>
cristye6e84152011-06-06 14:16:49 +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 automagically."/>
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"/>
cristye6e84152011-06-06 14:16:49 +000019 <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"/>
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">
cristye6e84152011-06-06 14:16:49 +000091 <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
cristyda16f162011-02-19 23:52:17 +000092</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">
cristy81492d62011-06-07 16:41:42 +0000163 <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
164</div>
165<div class="sponsor">
166 <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
167</div>
168<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000169 <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
170</div>
171<div class="sponsor">
172 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
173</div>
174<div class="sponsor">
cristy4bf6e232011-05-21 01:43:33 +0000175 <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 +0000176</div>
177<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000178 <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
cristy4c54bbb2011-03-17 13:53:13 +0000179</div>
180<div class="sponsor">
cristy575d5ee2011-05-24 01:59:01 +0000181 <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
cristy4bf6e232011-05-21 01:43:33 +0000182</div>
183<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000184 <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 +0000185</div>
186<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000187 <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
cristy73fd1cd2010-09-12 19:14:25 +0000188</div>
189<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000190 <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
cristyee742642011-02-26 02:49:59 +0000191</div>
192<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000193 <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 +0000194</div>
cristyec6b4752011-01-08 03:16:23 +0000195<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000196 <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
cristybaacd172011-04-30 23:11:03 +0000197</div>
198<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000199 <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 +0000200</div>
cristy10c87152010-06-26 16:12:21 +0000201</div>
cristyce69bb02010-07-27 19:49:46 +0000202</div>
203</div>
cristy10c87152010-06-26 16:12:21 +0000204
cristyce69bb02010-07-27 19:49:46 +0000205<div class="eastbar">
cristyb52981c2011-03-19 17:09:31 +0000206
cristy10c87152010-06-26 16:12:21 +0000207</div>
208
209<div class="main">
210
cristy350dea42011-02-15 17:31:04 +0000211<h1>Module image-view Methods</h1>
cristy6f77f692011-02-15 15:31:39 +0000212<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 +0000213
cristy350dea42011-02-15 17:31:04 +0000214<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000215<div class="doc-section">
216
217<p>CloneImageView() makes a copy of the specified image view.</p>
218
219<p>The format of the CloneImageView method is:</p>
220
221<pre class="code">
222 ImageView *CloneImageView(const ImageView *image_view)
223</pre>
224
225<p>A description of each parameter follows:</p>
226
227<h5>image_view</h5>
228<p>the image view.</p>
229
230 </div>
cristy350dea42011-02-15 17:31:04 +0000231<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000232<div class="doc-section">
233
234<p>DestroyImageView() deallocates memory associated with a image view.</p>
235
236<p>The format of the DestroyImageView method is:</p>
237
238<pre class="code">
239 ImageView *DestroyImageView(ImageView *image_view)
240</pre>
241
242<p>A description of each parameter follows:</p>
243
244<h5>image_view</h5>
245<p>the image view.</p>
246
247 </div>
cristy350dea42011-02-15 17:31:04 +0000248<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000249<div class="doc-section">
250
251<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>
252
253<p>The callback signature is:</p>
254
255<pre class="text">
256 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
257 const ImageView *duplex,ImageView *destination,const ssize_t y,
258 const int thread_id,void *context)
259</pre>
260
261<p>Use this pragma if the view is not single threaded:</p>
262
263<pre class="text">
264 #pragma omp critical
265</pre>
266
267<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
268
269<p>The format of the DuplexTransferImageViewIterator method is:</p>
270
271<pre class="code">
272 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
273 ImageView *duplex,ImageView *destination,
274 DuplexTransferImageViewMethod transfer,void *context)
275</pre>
276
277<p>A description of each parameter follows:</p>
278
279<h5>source</h5>
280<p>the source image view.</p>
281
282<h5>duplex</h5>
283<p>the duplex image view.</p>
284
285<h5>destination</h5>
286<p>the destination image view.</p>
287
288<h5>transfer</h5>
289<p>the transfer callback method.</p>
290
291<h5>context</h5>
292<p>the user defined context.</p>
293
294 </div>
cristy350dea42011-02-15 17:31:04 +0000295<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000296<div class="doc-section">
297
298<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
299
300<p>The format of the GetImageViewAuthenticPixels method is:</p>
301
302<pre class="code">
303 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
304</pre>
305
306<p>A description of each parameter follows:</p>
307
308<h5>image_view</h5>
309<p>the image view.</p>
310
311 </div>
cristy350dea42011-02-15 17:31:04 +0000312<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000313<div class="doc-section">
314
315<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
316
317<p>The format of the GetImageViewAuthenticPixels method is:</p>
318
319<pre class="code">
320 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
321</pre>
322
323<p>A description of each parameter follows:</p>
324
325<h5>image_view</h5>
326<p>the image view.</p>
327
328 </div>
cristy350dea42011-02-15 17:31:04 +0000329<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000330<div class="doc-section">
331
332<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
333
334<p>The format of the GetImageViewException method is:</p>
335
336<pre class="code">
337 char *GetImageViewException(const PixelImage *image_view,
338 ExceptionType *severity)
339</pre>
340
341<p>A description of each parameter follows:</p>
342
343<h5>image_view</h5>
344<p>the pixel image_view.</p>
345
346<h5>severity</h5>
347<p>the severity of the error is returned here.</p>
348
349 </div>
cristy350dea42011-02-15 17:31:04 +0000350<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000351<div class="doc-section">
352
353<p>GetImageViewExtent() returns the image view extent.</p>
354
355<p>The format of the GetImageViewExtent method is:</p>
356
357<pre class="code">
358 RectangleInfo GetImageViewExtent(const ImageView *image_view)
359</pre>
360
361<p>A description of each parameter follows:</p>
362
363<h5>image_view</h5>
364<p>the image view.</p>
365
366 </div>
cristy350dea42011-02-15 17:31:04 +0000367<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000368<div class="doc-section">
369
370<p>GetImageViewImage() returns the image associated with the image view.</p>
371
372<p>The format of the GetImageViewImage method is:</p>
373
374<pre class="code">
375 MagickCore *GetImageViewImage(const ImageView *image_view)
376</pre>
377
378<p>A description of each parameter follows:</p>
379
380<h5>image_view</h5>
381<p>the image view.</p>
382
383 </div>
cristy350dea42011-02-15 17:31:04 +0000384<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000385<div class="doc-section">
386
387<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>
388
389<p>The callback signature is:</p>
390
391<pre class="text">
392 MagickBooleanType GetImageViewMethod(const ImageView *source,
393 const ssize_t y,const int thread_id,void *context)
394</pre>
395
396<p>Use this pragma if the view is not single threaded:</p>
397
398<pre class="text">
399 #pragma omp critical
400</pre>
401
402<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
403
404<p>The format of the GetImageViewIterator method is:</p>
405
406<pre class="code">
407 MagickBooleanType GetImageViewIterator(ImageView *source,
408 GetImageViewMethod get,void *context)
409</pre>
410
411<p>A description of each parameter follows:</p>
412
413<h5>source</h5>
414<p>the source image view.</p>
415
416<h5>get</h5>
417<p>the get callback method.</p>
418
419<h5>context</h5>
420<p>the user defined context.</p>
421
422 </div>
cristy350dea42011-02-15 17:31:04 +0000423<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000424<div class="doc-section">
425
426<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
427
428<p>The format of the GetImageViewVirtualIndexes method is:</p>
429
430<pre class="code">
431 const IndexPacket *GetImageViewVirtualIndexes(
432 const ImageView *image_view)
433</pre>
434
435<p>A description of each parameter follows:</p>
436
437<h5>image_view</h5>
438<p>the image view.</p>
439
440 </div>
cristy350dea42011-02-15 17:31:04 +0000441<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000442<div class="doc-section">
443
444<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
445
446<p>The format of the GetImageViewVirtualPixels method is:</p>
447
448<pre class="code">
449 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
450</pre>
451
452<p>A description of each parameter follows:</p>
453
454<h5>image_view</h5>
455<p>the image view.</p>
456
457 </div>
cristy350dea42011-02-15 17:31:04 +0000458<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000459<div class="doc-section">
460
461<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
462
463<p>The format of the IsImageView method is:</p>
464
465<pre class="code">
466 MagickBooleanType IsImageView(const ImageView *image_view)
467</pre>
468
469<p>A description of each parameter follows:</p>
470
471<h5>image_view</h5>
472<p>the image view.</p>
473
474 </div>
cristy350dea42011-02-15 17:31:04 +0000475<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000476<div class="doc-section">
477
478<p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
479
480<p>The format of the NewImageView method is:</p>
481
482<pre class="code">
483 ImageView *NewImageView(MagickCore *wand)
484</pre>
485
486<p>A description of each parameter follows:</p>
487
488<h5>wand</h5>
489<p>the wand.</p>
490
491 </div>
cristy350dea42011-02-15 17:31:04 +0000492<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000493<div class="doc-section">
494
495<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
496
497<p>The format of the NewImageViewRegion method is:</p>
498
499<pre class="code">
500 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
501 const ssize_t y,const size_t width,const size_t height)
502</pre>
503
504<p>A description of each parameter follows:</p>
505
506<h5>wand</h5>
507<p>the magick wand.</p>
508
509<h5>x,y,columns,rows</h5>
510<p>These values define the perimeter of a extent of pixel_wands view.</p>
511
512 </div>
cristy350dea42011-02-15 17:31:04 +0000513<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000514<div class="doc-section">
515
516<p>SetImageViewDescription() associates a description with an image view.</p>
517
518<p>The format of the SetImageViewDescription method is:</p>
519
520<pre class="code">
521 void SetImageViewDescription(ImageView *image_view,
522 const char *description)
523</pre>
524
525<p>A description of each parameter follows:</p>
526
527<h5>image_view</h5>
528<p>the image view.</p>
529
530<h5>description</h5>
531<p>the image view description.</p>
532
533 </div>
cristy350dea42011-02-15 17:31:04 +0000534<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000535<div class="doc-section">
536
537<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>
538
539<p>The callback signature is:</p>
540
541<pre class="text">
542 MagickBooleanType SetImageViewMethod(ImageView *destination,
543 const ssize_t y,const int thread_id,void *context)
544</pre>
545
546<p>Use this pragma if the view is not single threaded:</p>
547
548<pre class="text">
549 #pragma omp critical
550</pre>
551
552<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
553
554<p>The format of the SetImageViewIterator method is:</p>
555
556<pre class="code">
557 MagickBooleanType SetImageViewIterator(ImageView *destination,
558 SetImageViewMethod set,void *context)
559</pre>
560
561<p>A description of each parameter follows:</p>
562
563<h5>destination</h5>
564<p>the image view.</p>
565
566<h5>set</h5>
567<p>the set callback method.</p>
568
569<h5>context</h5>
570<p>the user defined context.</p>
571
572 </div>
cristy350dea42011-02-15 17:31:04 +0000573<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000574<div class="doc-section">
575
576<p>SetImageViewThreads() sets the number of threads in a thread team.</p>
577
578<p>The format of the SetImageViewDescription method is:</p>
579
580<pre class="code">
581 void SetImageViewThreads(ImageView *image_view,
582 const size_t number_threads)
583</pre>
584
585<p>A description of each parameter follows:</p>
586
587<h5>image_view</h5>
588<p>the image view.</p>
589
590<h5>number_threads</h5>
591<p>the number of threads in a thread team.</p>
592
593 </div>
cristy350dea42011-02-15 17:31:04 +0000594<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000595<div class="doc-section">
596
597<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>
598
599<p>The callback signature is:</p>
600
601<pre class="text">
602 MagickBooleanType TransferImageViewMethod(const ImageView *source,
603 ImageView *destination,const ssize_t y,const int thread_id,
604 void *context)
605</pre>
606
607<p>Use this pragma if the view is not single threaded:</p>
608
609<pre class="text">
610 #pragma omp critical
611</pre>
612
613<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
614
615<p>The format of the TransferImageViewIterator method is:</p>
616
617<pre class="code">
618 MagickBooleanType TransferImageViewIterator(ImageView *source,
619 ImageView *destination,TransferImageViewMethod transfer,void *context)
620</pre>
621
622<p>A description of each parameter follows:</p>
623
624<h5>source</h5>
625<p>the source image view.</p>
626
627<h5>destination</h5>
628<p>the destination image view.</p>
629
630<h5>transfer</h5>
631<p>the transfer callback method.</p>
632
633<h5>context</h5>
634<p>the user defined context.</p>
635
636 </div>
cristy350dea42011-02-15 17:31:04 +0000637<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000638<div class="doc-section">
639
640<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>
641
642<p>The callback signature is:</p>
643
644<pre class="text">
645 MagickBooleanType UpdateImageViewMethod(ImageView *source,
646 const ssize_t y,const int thread_id,void *context)
647</pre>
648
649<p>Use this pragma if the view is not single threaded:</p>
650
651<pre class="text">
652 #pragma omp critical
653</pre>
654
655<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
656
657<p>The format of the UpdateImageViewIterator method is:</p>
658
659<pre class="code">
660 MagickBooleanType UpdateImageViewIterator(ImageView *source,
661 UpdateImageViewMethod update,void *context)
662</pre>
663
664<p>A description of each parameter follows:</p>
665
666<h5>source</h5>
667<p>the source image view.</p>
668
669<h5>update</h5>
670<p>the update callback method.</p>
671
672<h5>context</h5>
673<p>the user defined context.</p>
674
675 </div>
cristy10c87152010-06-26 16:12:21 +0000676
677</div>
678
679<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000680 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000681 <span id="linkbar-center">
682 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000683 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000684 </span>
685 <span id="linkbar-east">&nbsp;</span>
686 </div>
687 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000688 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy10c87152010-06-26 16:12:21 +0000689 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
690 </div>
691 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000692 <script type="text/javascript">
693 var _gaq = _gaq || [];
694 _gaq.push(['_setAccount', 'UA-17690367-1']);
695 _gaq.push(['_trackPageview']);
696
697 (function() {
698 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
699 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
700 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
701 })();
702 </script>
cristy10c87152010-06-26 16:12:21 +0000703</body>
704</html>