blob: 45290bd8c85364fb5f3b226b21fcc71d1942981e [file] [log] [blame]
cristy10c87152010-06-26 16:12:21 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
4<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="/>
7 <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"/>
12 <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
13 <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"/>
22 <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
23 <meta name="Distribution" content="Global"/>
cristy3c98a4f2010-08-13 20:09:41 +000024 <link rel="icon" href="../../images/wand.png" sizes="32x32"/>
25 <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"/>
27 <style type="text/css" media="all">
28 @import url("../../www/magick.css");
29 </style>
cristy10c87152010-06-26 16:12:21 +000030</head>
31
32<body id="www-imagemagick-org">
33<div class="titlebar">
34<a href="../../index.html">
35 <img src="../../images/script.png" alt="[ImageMagick]"
36 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
37<a href="http://www.networkredux.com">
38 <img src="../../images/networkredux.png" alt="[sponsor]"
39 style="margin: 45px auto; border: 0px; float: left;" /></a>
40<a href="http://www.imagemagick.org/discourse-server/">
41 <img src="../../images/logo.jpg" alt=""
42 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
43<a href="../../index.html">
44 <img src="../../images/sprite.jpg" alt=""
45 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
46</div>
47
cristyce69bb02010-07-27 19:49:46 +000048<div class="westbar">
cristy10c87152010-06-26 16:12:21 +000049
50<div class="menu">
51 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
52</div>
53<div class="sep"></div>
54<div class="menu">
55 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
56</div>
57<div class="sub">
58 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
59</div>
60<div class="sub">
61 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
62</div>
63<div class="sub">
64 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
65</div>
66<div class="sep"></div>
67<div class="menu">
68 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
69</div>
70<div class="sub">
71 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
72</div>
73<div class="sub">
74 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
75</div>
76<div class="sub">
77 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
78</div>
79<div class="menu">
80 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
81</div>
82<div class="sub">
83 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
84</div>
85<div class="sub">
86 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
87</div>
88<div class="sub">
89 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
90</div>
91<div class="sub">
92 <a title="Program Interface: Magick++" href="../../Magick++/">Magick++</a>
93</div>
94<div class="sep"></div>
95<div class="menu">
96 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
97</div>
98<div class="sub">
99 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
100</div>
101<div class="sub">
102 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
103 </div>
104<div class="menu">
105 <a title="Resources" href="../../www/resources.html">Resources</a>
106</div>
107<div class="menu">
108 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
109</div>
110<div class="menu">
111 <a title="Download" href="../../www/download.html">Download</a>
112</div>
113<div class="sep"></div>
114<div class="menu">
115 <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
116</div>
117<div class="sep"></div>
118<div class="menu">
119 <a title="Site Map"href="../../www/sitemap.html">Site Map</a>
120</div>
121<div class="sub">
122 <a title="Site Map: Links"href="../../www/links.html">Links</a>
123</div>
124<div class="sep"></div>
125<div class="menu">
126 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
127
128<div class="sponsbox">
129<div class="sponsor">
cristy73fd1cd2010-09-12 19:14:25 +0000130 <a title="Sponsor: Online-Magazin" href="http://www.unkostenbeitrag.de/">Online-Magazin</a><!-- 20101101000200 -->
131</div>
132<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000133 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
134</div>
135<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000136 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
137</div>
138<div class="sponsor">
cristy10c87152010-06-26 16:12:21 +0000139 <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
140</div>
141<div class="sponsor">
142 <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
143</div>
144<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000145 <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
cristy10c87152010-06-26 16:12:21 +0000146</div>
147<div class="sponsor">
148 <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
149</div>
cristy10c87152010-06-26 16:12:21 +0000150</div>
cristyce69bb02010-07-27 19:49:46 +0000151</div>
152</div>
cristy10c87152010-06-26 16:12:21 +0000153
cristyce69bb02010-07-27 19:49:46 +0000154<div class="eastbar">
155 <script type="text/javascript">
156 <!--
157 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000158 google_ad_slot = "0574824969";
159 google_ad_width = 160;
160 google_ad_height = 600;
161 //-->
162 </script>
163 <script type="text/javascript"
164 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
165 </script>
cristy10c87152010-06-26 16:12:21 +0000166</div>
167
168<div class="main">
169
cristyd6dfc0d2010-06-27 19:30:49 +0000170<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="#TransferImageViewIterator">TransferImageViewIterator</a> &bull; <a href="#UpdateImageViewIterator">UpdateImageViewIterator</a>]</p>
cristy10c87152010-06-26 16:12:21 +0000171
172<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
173_8c.html" target="source" name="CloneImageView">CloneImageView</a></h2>
174<div class="doc-section">
175
cristy73b7d4c2010-06-27 00:31:00 +0000176<p>CloneImageView() makes a copy of the specified image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000177
178<p>The format of the CloneImageView method is:</p>
179
180<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000181 ImageView *CloneImageView(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000182</pre>
183
184<p>A description of each parameter follows:</p></ol>
185
cristy73b7d4c2010-06-27 00:31:00 +0000186<h5>image_view</h5>
187<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000188
189 </div>
190<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
191_8c.html" target="source" name="DestroyImageView">DestroyImageView</a></h2>
192<div class="doc-section">
193
cristy73b7d4c2010-06-27 00:31:00 +0000194<p>DestroyImageView() deallocates memory associated with a image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000195
196<p>The format of the DestroyImageView method is:</p>
197
198<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000199 ImageView *DestroyImageView(ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000200</pre>
201
202<p>A description of each parameter follows:</p></ol>
203
cristy73b7d4c2010-06-27 00:31:00 +0000204<h5>image_view</h5>
205<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000206
207 </div>
208<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
209_8c.html" target="source" name="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
210<div class="doc-section">
211
cristyc3ebda22010-06-27 17:11:57 +0000212<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></ol>
cristy10c87152010-06-26 16:12:21 +0000213
cristyd6dfc0d2010-06-27 19:30:49 +0000214<p>The callback signature is:</p>
215
216<pre class="text">
217 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
218 const ImageView *duplex,ImageView *destination,const ssize_t y,
219 const int thread_id,void *context)
220</pre>
221
cristy73b7d4c2010-06-27 00:31:00 +0000222<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000223
224<pre class="text">
225 #pragma omp critical
226</pre>
227
228<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p></ol>
229
230<p>The format of the DuplexTransferImageViewIterator method is:</p>
231
232<pre class="code">
233 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
234 ImageView *duplex,ImageView *destination,
235 DuplexTransferImageViewMethod transfer,void *context)
236</pre>
237
238<p>A description of each parameter follows:</p></ol>
239
240<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000241<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000242
243<h5>duplex</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000244<ol><p>the duplex image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000245
246<h5>destination</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000247<ol><p>the destination image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000248
249<h5>transfer</h5>
250<ol><p>the transfer callback method.</p></ol>
251
252<h5>context</h5>
253<ol><p>the user defined context.</p></ol>
254
255 </div>
256<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy73b7d4c2010-06-27 00:31:00 +0000257_8c.html" target="source" name="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
258<div class="doc-section">
259
260<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p></ol>
261
262<p>The format of the GetImageViewAuthenticPixels method is:</p>
263
264<pre class="code">
265 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
266</pre>
267
268<p>A description of each parameter follows:</p></ol>
269
270<h5>image_view</h5>
271<ol><p>the image view.</p></ol>
272
273 </div>
274<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
275_8c.html" target="source" name="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
276<div class="doc-section">
277
278<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p></ol>
279
280<p>The format of the GetImageViewAuthenticPixels method is:</p>
281
282<pre class="code">
283 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
284</pre>
285
286<p>A description of each parameter follows:</p></ol>
287
288<h5>image_view</h5>
289<ol><p>the image view.</p></ol>
290
291 </div>
292<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy10c87152010-06-26 16:12:21 +0000293_8c.html" target="source" name="GetImageViewException">GetImageViewException</a></h2>
294<div class="doc-section">
295
cristy73b7d4c2010-06-27 00:31:00 +0000296<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000297
298<p>The format of the GetImageViewException method is:</p>
299
300<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000301 char *GetImageViewException(const PixelImage *image_view,
cristy10c87152010-06-26 16:12:21 +0000302 ExceptionType *severity)
303</pre>
304
305<p>A description of each parameter follows:</p></ol>
306
cristy73b7d4c2010-06-27 00:31:00 +0000307<h5>image_view</h5>
308<ol><p>the pixel image_view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000309
310<h5>severity</h5>
311<ol><p>the severity of the error is returned here.</p></ol>
312
313 </div>
314<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristyc3ebda22010-06-27 17:11:57 +0000315_8c.html" target="source" name="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy10c87152010-06-26 16:12:21 +0000316<div class="doc-section">
317
cristyc3ebda22010-06-27 17:11:57 +0000318<p>GetImageViewExtent() returns the image view extent.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000319
cristyc3ebda22010-06-27 17:11:57 +0000320<p>The format of the GetImageViewExtent method is:</p>
cristy10c87152010-06-26 16:12:21 +0000321
322<pre class="code">
cristyc3ebda22010-06-27 17:11:57 +0000323 RectangleInfo GetImageViewExtent(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000324</pre>
325
326<p>A description of each parameter follows:</p></ol>
327
cristy73b7d4c2010-06-27 00:31:00 +0000328<h5>image_view</h5>
329<ol><p>the image view.</p></ol>
330
331 </div>
332<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
333_8c.html" target="source" name="GetImageViewImage">GetImageViewImage</a></h2>
334<div class="doc-section">
335
336<p>GetImageViewImage() returns the image associated with the image view.</p></ol>
337
338<p>The format of the GetImageViewImage method is:</p>
339
340<pre class="code">
341 MagickCore *GetImageViewImage(const ImageView *image_view)
342</pre>
343
344<p>A description of each parameter follows:</p></ol>
345
346<h5>image_view</h5>
347<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000348
349 </div>
350<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
351_8c.html" target="source" name="GetImageViewIterator">GetImageViewIterator</a></h2>
352<div class="doc-section">
353
cristyc3ebda22010-06-27 17:11:57 +0000354<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></ol>
cristy10c87152010-06-26 16:12:21 +0000355
cristyd6dfc0d2010-06-27 19:30:49 +0000356<p>The callback signature is:</p>
357
358<pre class="text">
359 MagickBooleanType GetImageViewMethod(const ImageView *source,
360 const ssize_t y,const int thread_id,void *context)
361</pre>
362
cristy73b7d4c2010-06-27 00:31:00 +0000363<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000364
365<pre class="text">
366 #pragma omp critical
367</pre>
368
369<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p></ol>
370
371<p>The format of the GetImageViewIterator method is:</p>
372
373<pre class="code">
374 MagickBooleanType GetImageViewIterator(ImageView *source,
375 GetImageViewMethod get,void *context)
376</pre>
377
378<p>A description of each parameter follows:</p></ol>
379
380<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000381<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000382
383<h5>get</h5>
384<ol><p>the get callback method.</p></ol>
385
386<h5>context</h5>
387<ol><p>the user defined context.</p></ol>
388
389 </div>
390<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy73b7d4c2010-06-27 00:31:00 +0000391_8c.html" target="source" name="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
cristy10c87152010-06-26 16:12:21 +0000392<div class="doc-section">
393
cristy73b7d4c2010-06-27 00:31:00 +0000394<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000395
cristy73b7d4c2010-06-27 00:31:00 +0000396<p>The format of the GetImageViewVirtualIndexes method is:</p>
cristy10c87152010-06-26 16:12:21 +0000397
398<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000399 const IndexPacket *GetImageViewVirtualIndexes(
400 const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000401</pre>
402
403<p>A description of each parameter follows:</p></ol>
404
cristy73b7d4c2010-06-27 00:31:00 +0000405<h5>image_view</h5>
406<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000407
408 </div>
409<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy73b7d4c2010-06-27 00:31:00 +0000410_8c.html" target="source" name="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy10c87152010-06-26 16:12:21 +0000411<div class="doc-section">
412
cristy73b7d4c2010-06-27 00:31:00 +0000413<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000414
cristy73b7d4c2010-06-27 00:31:00 +0000415<p>The format of the GetImageViewVirtualPixels method is:</p>
cristy10c87152010-06-26 16:12:21 +0000416
417<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000418 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000419</pre>
420
421<p>A description of each parameter follows:</p></ol>
422
cristy73b7d4c2010-06-27 00:31:00 +0000423<h5>image_view</h5>
424<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000425
426 </div>
427<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy10c87152010-06-26 16:12:21 +0000428_8c.html" target="source" name="IsImageView">IsImageView</a></h2>
429<div class="doc-section">
430
cristy73b7d4c2010-06-27 00:31:00 +0000431<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000432
433<p>The format of the IsImageView method is:</p>
434
435<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000436 MagickBooleanType IsImageView(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000437</pre>
438
439<p>A description of each parameter follows:</p></ol>
440
cristy73b7d4c2010-06-27 00:31:00 +0000441<h5>image_view</h5>
442<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000443
444 </div>
445<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
446_8c.html" target="source" name="NewImageView">NewImageView</a></h2>
447<div class="doc-section">
448
cristyc3ebda22010-06-27 17:11:57 +0000449<p>NewImageView() returns a image view required for all other methods in the Image View API.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000450
451<p>The format of the NewImageView method is:</p>
452
453<pre class="code">
454 ImageView *NewImageView(MagickCore *wand)
455</pre>
456
457<p>A description of each parameter follows:</p></ol>
458
459<h5>wand</h5>
460<ol><p>the wand.</p></ol>
461
462 </div>
463<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
464_8c.html" target="source" name="NewImageViewRegion">NewImageViewRegion</a></h2>
465<div class="doc-section">
466
cristyc3ebda22010-06-27 17:11:57 +0000467<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000468
469<p>The format of the NewImageViewRegion method is:</p>
470
471<pre class="code">
472 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
473 const ssize_t y,const size_t width,const size_t height)
474</pre>
475
476<p>A description of each parameter follows:</p></ol>
477
478<h5>wand</h5>
479<ol><p>the magick wand.</p></ol>
480
481<h5>x,y,columns,rows</h5>
cristyc3ebda22010-06-27 17:11:57 +0000482<ol><p>These values define the perimeter of a extent of pixel_wands view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000483
484 </div>
485<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristyd6dfc0d2010-06-27 19:30:49 +0000486_8c.html" target="source" name="SetImageViewDescription">SetImageViewDescription</a></h2>
487<div class="doc-section">
488
489<p>SetImageViewDescription() associates a description with an image view.</p></ol>
490
491<p>The format of the SetImageViewDescription method is:</p>
492
493<pre class="code">
494 void SetImageViewDescription(ImageView *image_view,
495 const char *description)
496</pre>
497
498<p>A description of each parameter follows:</p></ol>
499
500<h5>image_view</h5>
501<ol><p>the image view.</p></ol>
502
503<h5>description</h5>
504<ol><p>the image view description.</p></ol>
505
506 </div>
507<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy10c87152010-06-26 16:12:21 +0000508_8c.html" target="source" name="SetImageViewIterator">SetImageViewIterator</a></h2>
509<div class="doc-section">
510
cristyc3ebda22010-06-27 17:11:57 +0000511<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></ol>
cristy10c87152010-06-26 16:12:21 +0000512
cristyd6dfc0d2010-06-27 19:30:49 +0000513<p>The callback signature is:</p>
514
515<pre class="text">
516 MagickBooleanType SetImageViewMethod(ImageView *destination,
517 const ssize_t y,const int thread_id,void *context)
518</pre>
519
cristy73b7d4c2010-06-27 00:31:00 +0000520<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000521
522<pre class="text">
523 #pragma omp critical
524</pre>
525
526<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p></ol>
527
528<p>The format of the SetImageViewIterator method is:</p>
529
530<pre class="code">
531 MagickBooleanType SetImageViewIterator(ImageView *destination,
532 SetImageViewMethod set,void *context)
533</pre>
534
535<p>A description of each parameter follows:</p></ol>
536
537<h5>destination</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000538<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000539
540<h5>set</h5>
541<ol><p>the set callback method.</p></ol>
542
543<h5>context</h5>
544<ol><p>the user defined context.</p></ol>
545
546 </div>
547<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
548_8c.html" target="source" name="TransferImageViewIterator">TransferImageViewIterator</a></h2>
549<div class="doc-section">
550
cristyc3ebda22010-06-27 17:11:57 +0000551<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></ol>
cristy10c87152010-06-26 16:12:21 +0000552
cristyd6dfc0d2010-06-27 19:30:49 +0000553<p>The callback signature is:</p>
554
555<pre class="text">
556 MagickBooleanType TransferImageViewMethod(const ImageView *source,
557 ImageView *destination,const ssize_t y,const int thread_id,
558 void *context)
559</pre>
560
cristy73b7d4c2010-06-27 00:31:00 +0000561<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000562
563<pre class="text">
564 #pragma omp critical
565</pre>
566
567<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p></ol>
568
569<p>The format of the TransferImageViewIterator method is:</p>
570
571<pre class="code">
572 MagickBooleanType TransferImageViewIterator(ImageView *source,
573 ImageView *destination,TransferImageViewMethod transfer,void *context)
574</pre>
575
576<p>A description of each parameter follows:</p></ol>
577
578<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000579<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000580
581<h5>destination</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000582<ol><p>the destination image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000583
584<h5>transfer</h5>
585<ol><p>the transfer callback method.</p></ol>
586
587<h5>context</h5>
588<ol><p>the user defined context.</p></ol>
589
590 </div>
591<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
592_8c.html" target="source" name="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
593<div class="doc-section">
594
cristyc3ebda22010-06-27 17:11:57 +0000595<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></ol>
cristy10c87152010-06-26 16:12:21 +0000596
cristyd6dfc0d2010-06-27 19:30:49 +0000597<p>The callback signature is:</p>
598
599<pre class="text">
600 MagickBooleanType UpdateImageViewMethod(ImageView *source,
601 const ssize_t y,const int thread_id,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
610<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p></ol>
611
612<p>The format of the UpdateImageViewIterator method is:</p>
613
614<pre class="code">
615 MagickBooleanType UpdateImageViewIterator(ImageView *source,
616 UpdateImageViewMethod update,void *context)
617</pre>
618
619<p>A description of each parameter follows:</p></ol>
620
621<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000622<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000623
624<h5>update</h5>
625<ol><p>the update callback method.</p></ol>
626
627<h5>context</h5>
628<ol><p>the user defined context.</p></ol>
629
630 </div>
631
632</div>
633
634<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000635 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000636 <span id="linkbar-center">
637 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000638 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000639 </span>
640 <span id="linkbar-east">&nbsp;</span>
641 </div>
642 <div class="footer">
643 <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
644 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
645 </div>
646 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000647 <script type="text/javascript">
648 var _gaq = _gaq || [];
649 _gaq.push(['_setAccount', 'UA-17690367-1']);
650 _gaq.push(['_trackPageview']);
651
652 (function() {
653 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
654 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
655 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
656 })();
657 </script>
cristy10c87152010-06-26 16:12:21 +0000658</body>
659</html>