blob: 500de73558f27b68d228a8693594336cff503e2a [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">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">
cristy10c87152010-06-26 16:12:21 +00004<head>
cristy3c98a4f2010-08-13 20:09:41 +00005 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +00007 <title>ImageMagick: MagickCore, C API for ImageMagick: Image View Methods</title>
cristy10c87152010-06-26 16:12:21 +00008 <meta http-equiv="Content-Language" content="en-US"/>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000011 <meta name="Application-name" content="ImageMagick"/>
cristyaf8d6652011-02-04 21:57:45 +000012 <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 +000013 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy10c87152010-06-26 16:12:21 +000014 <meta name="Generator" content="PHP"/>
15 <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, image, view, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
cristy10c87152010-06-26 16:12:21 +000016 <meta name="Rating" content="GENERAL"/>
17 <meta name="Robots" content="INDEX, FOLLOW"/>
18 <meta name="Generator" content="ImageMagick Studio LLC"/>
19 <meta name="Author" content="ImageMagick Studio LLC"/>
20 <meta name="Revisit-after" content="2 DAYS"/>
21 <meta name="Resource-type" content="document"/>
cristy4103d562010-12-10 01:38:54 +000022 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy10c87152010-06-26 16:12:21 +000023 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000024 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000025 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
26 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy7a40ba82011-01-08 20:31:18 +000027 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy3c98a4f2010-08-13 20:09:41 +000028 <style type="text/css" media="all">
29 @import url("../../www/magick.css");
30 </style>
cristydcca3fa2010-12-29 21:50:07 +000031 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000032 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
33 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
34 <script type="text/javascript">
35 $(document).ready(function() {
36 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
37 'transitionIn' : 'elastic',
38 'transitionOut' : 'elastic',
39 'overlayShow' : false,
40 'opacity' : true
41 });
42 });
43 </script>
cristy10c87152010-06-26 16:12:21 +000044</head>
45
46<body id="www-imagemagick-org">
47<div class="titlebar">
48<a href="../../index.html">
49 <img src="../../images/script.png" alt="[ImageMagick]"
50 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
51<a href="http://www.networkredux.com">
52 <img src="../../images/networkredux.png" alt="[sponsor]"
cristy52923442011-01-15 22:54:31 +000053 style="margin-top: 42px; border: 0px; float: left;" /></a>
cristy10c87152010-06-26 16:12:21 +000054<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000055 <img src="../../images/logo.jpg"
56 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000057 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy10c87152010-06-26 16:12:21 +000058<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000059 <img src="../../images/sprite.jpg"
60 alt="ImageMagick Sprite"
cristy10c87152010-06-26 16:12:21 +000061 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
62</div>
63
cristyce69bb02010-07-27 19:49:46 +000064<div class="westbar">
cristy10c87152010-06-26 16:12:21 +000065
66<div class="menu">
67 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
68</div>
69<div class="sep"></div>
70<div class="menu">
71 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
72</div>
73<div class="sub">
74 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
75</div>
76<div class="sub">
77 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
78</div>
79<div class="sub">
80 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
81</div>
82<div class="sep"></div>
83<div class="menu">
84 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
85</div>
86<div class="sub">
87 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
88</div>
89<div class="sub">
90 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
91</div>
92<div class="sub">
93 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
94</div>
95<div class="menu">
96 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
97</div>
98<div class="sub">
99 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
100</div>
101<div class="sub">
102 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
103</div>
104<div class="sub">
105 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
106</div>
107<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000108 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy10c87152010-06-26 16:12:21 +0000109</div>
110<div class="sep"></div>
111<div class="menu">
112 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
113</div>
114<div class="sub">
115 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
116</div>
117<div class="sub">
118 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
119 </div>
120<div class="menu">
121 <a title="Resources" href="../../www/resources.html">Resources</a>
122</div>
123<div class="menu">
124 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
125</div>
126<div class="menu">
127 <a title="Download" href="../../www/download.html">Download</a>
128</div>
129<div class="sep"></div>
130<div class="menu">
cristy52923442011-01-15 22:54:31 +0000131 <a title="Search" href="../../www/search.html">Search</a>
cristy10c87152010-06-26 16:12:21 +0000132</div>
133<div class="sep"></div>
134<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000135 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy10c87152010-06-26 16:12:21 +0000136</div>
137<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000138 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy10c87152010-06-26 16:12:21 +0000139</div>
140<div class="sep"></div>
141<div class="menu">
142 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
143
144<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000145<div class="sponsor">
cristyaf8d6652011-02-04 21:57:45 +0000146 <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
147</div>
148<div class="sponsor">
149 <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
150</div>
151<div class="sponsor">
cristy178edaf2011-01-23 03:42:39 +0000152 <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201106010240 -->
153</div>
cristyec6b4752011-01-08 03:16:23 +0000154<div class="sponsor">
cristy52923442011-01-15 22:54:31 +0000155 <a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
cristy73fd1cd2010-09-12 19:14:25 +0000156</div>
157<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000158 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
159</div>
160<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000161 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
162</div>
cristyec6b4752011-01-08 03:16:23 +0000163<div class="sponsor">
cristy178edaf2011-01-23 03:42:39 +0000164 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
165</div>
166<div class="sponsor">
cristyaf8d6652011-02-04 21:57:45 +0000167 <a title="Sponsor: alaTest.com" href="http://alatest.com">alaTest.com</a><!-- 20110801000300 -->
cristyec6b4752011-01-08 03:16:23 +0000168</div>
cristy10c87152010-06-26 16:12:21 +0000169</div>
cristyce69bb02010-07-27 19:49:46 +0000170</div>
171</div>
cristy10c87152010-06-26 16:12:21 +0000172
cristyce69bb02010-07-27 19:49:46 +0000173<div class="eastbar">
174 <script type="text/javascript">
175 <!--
176 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000177 google_ad_slot = "0574824969";
178 google_ad_width = 160;
179 google_ad_height = 600;
180 //-->
181 </script>
182 <script type="text/javascript"
183 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
184 </script>
cristy10c87152010-06-26 16:12:21 +0000185</div>
186
187<div class="main">
188
cristy307ba182010-12-25 01:00:34 +0000189<h1>Module image-view
190 Methods</h1>
cristyce66ab12010-10-21 23:36:32 +0000191<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 +0000192
cristy7a40ba82011-01-08 20:31:18 +0000193<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
194_8c.html" id="CloneImageView">CloneImageView</a></h2>
cristy10c87152010-06-26 16:12:21 +0000195<div class="doc-section">
196
cristy7a40ba82011-01-08 20:31:18 +0000197<p>CloneImageView() makes a copy of the specified image view.</p>
cristy10c87152010-06-26 16:12:21 +0000198
199<p>The format of the CloneImageView method is:</p>
200
201<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000202 ImageView *CloneImageView(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000203</pre>
204
cristy7a40ba82011-01-08 20:31:18 +0000205<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000206
cristy73b7d4c2010-06-27 00:31:00 +0000207<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000208<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000209
210 </div>
cristy7a40ba82011-01-08 20:31:18 +0000211<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
212_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
cristy10c87152010-06-26 16:12:21 +0000213<div class="doc-section">
214
cristy7a40ba82011-01-08 20:31:18 +0000215<p>DestroyImageView() deallocates memory associated with a image view.</p>
cristy10c87152010-06-26 16:12:21 +0000216
217<p>The format of the DestroyImageView method is:</p>
218
219<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000220 ImageView *DestroyImageView(ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000221</pre>
222
cristy7a40ba82011-01-08 20:31:18 +0000223<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000224
cristy73b7d4c2010-06-27 00:31:00 +0000225<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000226<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000227
228 </div>
cristy7a40ba82011-01-08 20:31:18 +0000229<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
230_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
cristy10c87152010-06-26 16:12:21 +0000231<div class="doc-section">
232
cristy7a40ba82011-01-08 20:31:18 +0000233<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>
cristy10c87152010-06-26 16:12:21 +0000234
cristyd6dfc0d2010-06-27 19:30:49 +0000235<p>The callback signature is:</p>
236
237<pre class="text">
238 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
239 const ImageView *duplex,ImageView *destination,const ssize_t y,
240 const int thread_id,void *context)
241</pre>
242
cristy73b7d4c2010-06-27 00:31:00 +0000243<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000244
245<pre class="text">
246 #pragma omp critical
247</pre>
248
cristy7a40ba82011-01-08 20:31:18 +0000249<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
cristy10c87152010-06-26 16:12:21 +0000250
251<p>The format of the DuplexTransferImageViewIterator method is:</p>
252
253<pre class="code">
254 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
255 ImageView *duplex,ImageView *destination,
256 DuplexTransferImageViewMethod transfer,void *context)
257</pre>
258
cristy7a40ba82011-01-08 20:31:18 +0000259<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000260
261<h5>source</h5>
cristy7a40ba82011-01-08 20:31:18 +0000262<p>the source image view.</p>
cristy10c87152010-06-26 16:12:21 +0000263
264<h5>duplex</h5>
cristy7a40ba82011-01-08 20:31:18 +0000265<p>the duplex image view.</p>
cristy10c87152010-06-26 16:12:21 +0000266
267<h5>destination</h5>
cristy7a40ba82011-01-08 20:31:18 +0000268<p>the destination image view.</p>
cristy10c87152010-06-26 16:12:21 +0000269
270<h5>transfer</h5>
cristy7a40ba82011-01-08 20:31:18 +0000271<p>the transfer callback method.</p>
cristy10c87152010-06-26 16:12:21 +0000272
273<h5>context</h5>
cristy7a40ba82011-01-08 20:31:18 +0000274<p>the user defined context.</p>
cristy10c87152010-06-26 16:12:21 +0000275
276 </div>
cristy7a40ba82011-01-08 20:31:18 +0000277<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
278_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
cristy73b7d4c2010-06-27 00:31:00 +0000279<div class="doc-section">
280
cristy7a40ba82011-01-08 20:31:18 +0000281<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
cristy73b7d4c2010-06-27 00:31:00 +0000282
283<p>The format of the GetImageViewAuthenticPixels method is:</p>
284
285<pre class="code">
286 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
287</pre>
288
cristy7a40ba82011-01-08 20:31:18 +0000289<p>A description of each parameter follows:</p>
cristy73b7d4c2010-06-27 00:31:00 +0000290
291<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000292<p>the image view.</p>
cristy73b7d4c2010-06-27 00:31:00 +0000293
294 </div>
cristy7a40ba82011-01-08 20:31:18 +0000295<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
296_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
cristy73b7d4c2010-06-27 00:31:00 +0000297<div class="doc-section">
298
cristy7a40ba82011-01-08 20:31:18 +0000299<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
cristy73b7d4c2010-06-27 00:31:00 +0000300
301<p>The format of the GetImageViewAuthenticPixels method is:</p>
302
303<pre class="code">
304 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
305</pre>
306
cristy7a40ba82011-01-08 20:31:18 +0000307<p>A description of each parameter follows:</p>
cristy73b7d4c2010-06-27 00:31:00 +0000308
309<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000310<p>the image view.</p>
cristy73b7d4c2010-06-27 00:31:00 +0000311
312 </div>
cristy7a40ba82011-01-08 20:31:18 +0000313<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
314_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
cristy10c87152010-06-26 16:12:21 +0000315<div class="doc-section">
316
cristy7a40ba82011-01-08 20:31:18 +0000317<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
cristy10c87152010-06-26 16:12:21 +0000318
319<p>The format of the GetImageViewException method is:</p>
320
321<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000322 char *GetImageViewException(const PixelImage *image_view,
cristy10c87152010-06-26 16:12:21 +0000323 ExceptionType *severity)
324</pre>
325
cristy7a40ba82011-01-08 20:31:18 +0000326<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000327
cristy73b7d4c2010-06-27 00:31:00 +0000328<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000329<p>the pixel image_view.</p>
cristy10c87152010-06-26 16:12:21 +0000330
331<h5>severity</h5>
cristy7a40ba82011-01-08 20:31:18 +0000332<p>the severity of the error is returned here.</p>
cristy10c87152010-06-26 16:12:21 +0000333
334 </div>
cristy7a40ba82011-01-08 20:31:18 +0000335<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
336_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy10c87152010-06-26 16:12:21 +0000337<div class="doc-section">
338
cristy7a40ba82011-01-08 20:31:18 +0000339<p>GetImageViewExtent() returns the image view extent.</p>
cristy10c87152010-06-26 16:12:21 +0000340
cristyc3ebda22010-06-27 17:11:57 +0000341<p>The format of the GetImageViewExtent method is:</p>
cristy10c87152010-06-26 16:12:21 +0000342
343<pre class="code">
cristyc3ebda22010-06-27 17:11:57 +0000344 RectangleInfo GetImageViewExtent(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000345</pre>
346
cristy7a40ba82011-01-08 20:31:18 +0000347<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000348
cristy73b7d4c2010-06-27 00:31:00 +0000349<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000350<p>the image view.</p>
cristy73b7d4c2010-06-27 00:31:00 +0000351
352 </div>
cristy7a40ba82011-01-08 20:31:18 +0000353<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
354_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
cristy73b7d4c2010-06-27 00:31:00 +0000355<div class="doc-section">
356
cristy7a40ba82011-01-08 20:31:18 +0000357<p>GetImageViewImage() returns the image associated with the image view.</p>
cristy73b7d4c2010-06-27 00:31:00 +0000358
359<p>The format of the GetImageViewImage method is:</p>
360
361<pre class="code">
362 MagickCore *GetImageViewImage(const ImageView *image_view)
363</pre>
364
cristy7a40ba82011-01-08 20:31:18 +0000365<p>A description of each parameter follows:</p>
cristy73b7d4c2010-06-27 00:31:00 +0000366
367<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000368<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000369
370 </div>
cristy7a40ba82011-01-08 20:31:18 +0000371<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
372_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
cristy10c87152010-06-26 16:12:21 +0000373<div class="doc-section">
374
cristy7a40ba82011-01-08 20:31:18 +0000375<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>
cristy10c87152010-06-26 16:12:21 +0000376
cristyd6dfc0d2010-06-27 19:30:49 +0000377<p>The callback signature is:</p>
378
379<pre class="text">
380 MagickBooleanType GetImageViewMethod(const ImageView *source,
381 const ssize_t y,const int thread_id,void *context)
382</pre>
383
cristy73b7d4c2010-06-27 00:31:00 +0000384<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000385
386<pre class="text">
387 #pragma omp critical
388</pre>
389
cristy7a40ba82011-01-08 20:31:18 +0000390<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
cristy10c87152010-06-26 16:12:21 +0000391
392<p>The format of the GetImageViewIterator method is:</p>
393
394<pre class="code">
395 MagickBooleanType GetImageViewIterator(ImageView *source,
396 GetImageViewMethod get,void *context)
397</pre>
398
cristy7a40ba82011-01-08 20:31:18 +0000399<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000400
401<h5>source</h5>
cristy7a40ba82011-01-08 20:31:18 +0000402<p>the source image view.</p>
cristy10c87152010-06-26 16:12:21 +0000403
404<h5>get</h5>
cristy7a40ba82011-01-08 20:31:18 +0000405<p>the get callback method.</p>
cristy10c87152010-06-26 16:12:21 +0000406
407<h5>context</h5>
cristy7a40ba82011-01-08 20:31:18 +0000408<p>the user defined context.</p>
cristy10c87152010-06-26 16:12:21 +0000409
410 </div>
cristy7a40ba82011-01-08 20:31:18 +0000411<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
412_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
cristy10c87152010-06-26 16:12:21 +0000413<div class="doc-section">
414
cristy7a40ba82011-01-08 20:31:18 +0000415<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
cristy10c87152010-06-26 16:12:21 +0000416
cristy73b7d4c2010-06-27 00:31:00 +0000417<p>The format of the GetImageViewVirtualIndexes method is:</p>
cristy10c87152010-06-26 16:12:21 +0000418
419<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000420 const IndexPacket *GetImageViewVirtualIndexes(
421 const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000422</pre>
423
cristy7a40ba82011-01-08 20:31:18 +0000424<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000425
cristy73b7d4c2010-06-27 00:31:00 +0000426<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000427<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000428
429 </div>
cristy7a40ba82011-01-08 20:31:18 +0000430<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
431_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy10c87152010-06-26 16:12:21 +0000432<div class="doc-section">
433
cristy7a40ba82011-01-08 20:31:18 +0000434<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
cristy10c87152010-06-26 16:12:21 +0000435
cristy73b7d4c2010-06-27 00:31:00 +0000436<p>The format of the GetImageViewVirtualPixels method is:</p>
cristy10c87152010-06-26 16:12:21 +0000437
438<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000439 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000440</pre>
441
cristy7a40ba82011-01-08 20:31:18 +0000442<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000443
cristy73b7d4c2010-06-27 00:31:00 +0000444<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000445<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000446
447 </div>
cristy7a40ba82011-01-08 20:31:18 +0000448<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
449_8c.html" id="IsImageView">IsImageView</a></h2>
cristy10c87152010-06-26 16:12:21 +0000450<div class="doc-section">
451
cristy7a40ba82011-01-08 20:31:18 +0000452<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
cristy10c87152010-06-26 16:12:21 +0000453
454<p>The format of the IsImageView method is:</p>
455
456<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000457 MagickBooleanType IsImageView(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000458</pre>
459
cristy7a40ba82011-01-08 20:31:18 +0000460<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000461
cristy73b7d4c2010-06-27 00:31:00 +0000462<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000463<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000464
465 </div>
cristy7a40ba82011-01-08 20:31:18 +0000466<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
467_8c.html" id="NewImageView">NewImageView</a></h2>
cristy10c87152010-06-26 16:12:21 +0000468<div class="doc-section">
469
cristy7a40ba82011-01-08 20:31:18 +0000470<p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
cristy10c87152010-06-26 16:12:21 +0000471
472<p>The format of the NewImageView method is:</p>
473
474<pre class="code">
475 ImageView *NewImageView(MagickCore *wand)
476</pre>
477
cristy7a40ba82011-01-08 20:31:18 +0000478<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000479
480<h5>wand</h5>
cristy7a40ba82011-01-08 20:31:18 +0000481<p>the wand.</p>
cristy10c87152010-06-26 16:12:21 +0000482
483 </div>
cristy7a40ba82011-01-08 20:31:18 +0000484<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
485_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
cristy10c87152010-06-26 16:12:21 +0000486<div class="doc-section">
487
cristy7a40ba82011-01-08 20:31:18 +0000488<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
cristy10c87152010-06-26 16:12:21 +0000489
490<p>The format of the NewImageViewRegion method is:</p>
491
492<pre class="code">
493 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
494 const ssize_t y,const size_t width,const size_t height)
495</pre>
496
cristy7a40ba82011-01-08 20:31:18 +0000497<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000498
499<h5>wand</h5>
cristy7a40ba82011-01-08 20:31:18 +0000500<p>the magick wand.</p>
cristy10c87152010-06-26 16:12:21 +0000501
502<h5>x,y,columns,rows</h5>
cristy7a40ba82011-01-08 20:31:18 +0000503<p>These values define the perimeter of a extent of pixel_wands view.</p>
cristy10c87152010-06-26 16:12:21 +0000504
505 </div>
cristy7a40ba82011-01-08 20:31:18 +0000506<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
507_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
cristyd6dfc0d2010-06-27 19:30:49 +0000508<div class="doc-section">
509
cristy7a40ba82011-01-08 20:31:18 +0000510<p>SetImageViewDescription() associates a description with an image view.</p>
cristyd6dfc0d2010-06-27 19:30:49 +0000511
512<p>The format of the SetImageViewDescription method is:</p>
513
514<pre class="code">
515 void SetImageViewDescription(ImageView *image_view,
516 const char *description)
517</pre>
518
cristy7a40ba82011-01-08 20:31:18 +0000519<p>A description of each parameter follows:</p>
cristyd6dfc0d2010-06-27 19:30:49 +0000520
521<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000522<p>the image view.</p>
cristyd6dfc0d2010-06-27 19:30:49 +0000523
524<h5>description</h5>
cristy7a40ba82011-01-08 20:31:18 +0000525<p>the image view description.</p>
cristyd6dfc0d2010-06-27 19:30:49 +0000526
527 </div>
cristy7a40ba82011-01-08 20:31:18 +0000528<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
529_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
cristy10c87152010-06-26 16:12:21 +0000530<div class="doc-section">
531
cristy7a40ba82011-01-08 20:31:18 +0000532<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>
cristy10c87152010-06-26 16:12:21 +0000533
cristyd6dfc0d2010-06-27 19:30:49 +0000534<p>The callback signature is:</p>
535
536<pre class="text">
537 MagickBooleanType SetImageViewMethod(ImageView *destination,
538 const ssize_t y,const int thread_id,void *context)
539</pre>
540
cristy73b7d4c2010-06-27 00:31:00 +0000541<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000542
543<pre class="text">
544 #pragma omp critical
545</pre>
546
cristy7a40ba82011-01-08 20:31:18 +0000547<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
cristy10c87152010-06-26 16:12:21 +0000548
549<p>The format of the SetImageViewIterator method is:</p>
550
551<pre class="code">
552 MagickBooleanType SetImageViewIterator(ImageView *destination,
553 SetImageViewMethod set,void *context)
554</pre>
555
cristy7a40ba82011-01-08 20:31:18 +0000556<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000557
558<h5>destination</h5>
cristy7a40ba82011-01-08 20:31:18 +0000559<p>the image view.</p>
cristy10c87152010-06-26 16:12:21 +0000560
561<h5>set</h5>
cristy7a40ba82011-01-08 20:31:18 +0000562<p>the set callback method.</p>
cristy10c87152010-06-26 16:12:21 +0000563
564<h5>context</h5>
cristy7a40ba82011-01-08 20:31:18 +0000565<p>the user defined context.</p>
cristy10c87152010-06-26 16:12:21 +0000566
567 </div>
cristy7a40ba82011-01-08 20:31:18 +0000568<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
569_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
cristyce66ab12010-10-21 23:36:32 +0000570<div class="doc-section">
571
cristy7a40ba82011-01-08 20:31:18 +0000572<p>SetImageViewThreads() sets the number of threads in a thread team.</p>
cristyce66ab12010-10-21 23:36:32 +0000573
574<p>The format of the SetImageViewDescription method is:</p>
575
576<pre class="code">
577 void SetImageViewThreads(ImageView *image_view,
578 const size_t number_threads)
579</pre>
580
cristy7a40ba82011-01-08 20:31:18 +0000581<p>A description of each parameter follows:</p>
cristyce66ab12010-10-21 23:36:32 +0000582
583<h5>image_view</h5>
cristy7a40ba82011-01-08 20:31:18 +0000584<p>the image view.</p>
cristyce66ab12010-10-21 23:36:32 +0000585
586<h5>number_threads</h5>
cristy7a40ba82011-01-08 20:31:18 +0000587<p>the number of threads in a thread team.</p>
cristyce66ab12010-10-21 23:36:32 +0000588
589 </div>
cristy7a40ba82011-01-08 20:31:18 +0000590<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
591_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
cristy10c87152010-06-26 16:12:21 +0000592<div class="doc-section">
593
cristy7a40ba82011-01-08 20:31:18 +0000594<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>
cristy10c87152010-06-26 16:12:21 +0000595
cristyd6dfc0d2010-06-27 19:30:49 +0000596<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
cristy73b7d4c2010-06-27 00:31:00 +0000604<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000605
606<pre class="text">
607 #pragma omp critical
608</pre>
609
cristy7a40ba82011-01-08 20:31:18 +0000610<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
cristy10c87152010-06-26 16:12:21 +0000611
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
cristy7a40ba82011-01-08 20:31:18 +0000619<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000620
621<h5>source</h5>
cristy7a40ba82011-01-08 20:31:18 +0000622<p>the source image view.</p>
cristy10c87152010-06-26 16:12:21 +0000623
624<h5>destination</h5>
cristy7a40ba82011-01-08 20:31:18 +0000625<p>the destination image view.</p>
cristy10c87152010-06-26 16:12:21 +0000626
627<h5>transfer</h5>
cristy7a40ba82011-01-08 20:31:18 +0000628<p>the transfer callback method.</p>
cristy10c87152010-06-26 16:12:21 +0000629
630<h5>context</h5>
cristy7a40ba82011-01-08 20:31:18 +0000631<p>the user defined context.</p>
cristy10c87152010-06-26 16:12:21 +0000632
633 </div>
cristy7a40ba82011-01-08 20:31:18 +0000634<h2><a href="http://www.wizards-toolkit.org/api/MagickCore/image-view
635_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
cristy10c87152010-06-26 16:12:21 +0000636<div class="doc-section">
637
cristy7a40ba82011-01-08 20:31:18 +0000638<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>
cristy10c87152010-06-26 16:12:21 +0000639
cristyd6dfc0d2010-06-27 19:30:49 +0000640<p>The callback signature is:</p>
641
642<pre class="text">
643 MagickBooleanType UpdateImageViewMethod(ImageView *source,
644 const ssize_t y,const int thread_id,void *context)
645</pre>
646
cristy73b7d4c2010-06-27 00:31:00 +0000647<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000648
649<pre class="text">
650 #pragma omp critical
651</pre>
652
cristy7a40ba82011-01-08 20:31:18 +0000653<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
cristy10c87152010-06-26 16:12:21 +0000654
655<p>The format of the UpdateImageViewIterator method is:</p>
656
657<pre class="code">
658 MagickBooleanType UpdateImageViewIterator(ImageView *source,
659 UpdateImageViewMethod update,void *context)
660</pre>
661
cristy7a40ba82011-01-08 20:31:18 +0000662<p>A description of each parameter follows:</p>
cristy10c87152010-06-26 16:12:21 +0000663
664<h5>source</h5>
cristy7a40ba82011-01-08 20:31:18 +0000665<p>the source image view.</p>
cristy10c87152010-06-26 16:12:21 +0000666
667<h5>update</h5>
cristy7a40ba82011-01-08 20:31:18 +0000668<p>the update callback method.</p>
cristy10c87152010-06-26 16:12:21 +0000669
670<h5>context</h5>
cristy7a40ba82011-01-08 20:31:18 +0000671<p>the user defined context.</p>
cristy10c87152010-06-26 16:12:21 +0000672
673 </div>
674
675</div>
676
677<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000678 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000679 <span id="linkbar-center">
680 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000681 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000682 </span>
683 <span id="linkbar-east">&nbsp;</span>
684 </div>
685 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000686 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy10c87152010-06-26 16:12:21 +0000687 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
688 </div>
689 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000690 <script type="text/javascript">
691 var _gaq = _gaq || [];
692 _gaq.push(['_setAccount', 'UA-17690367-1']);
693 _gaq.push(['_trackPageview']);
694
695 (function() {
696 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
697 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
698 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
699 })();
700 </script>
cristy10c87152010-06-26 16:12:21 +0000701</body>
702</html>