blob: fed61b6dc24d19ca6f9e6775cc2969484b4d1d13 [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">
cristy24ce5cb2010-09-30 01:46:41 +0000130 <a title="Sponsor: Webdesign" href="http://www.renehornig.com/">Webdesign</a><!-- 20111001000240 -->
cristy73fd1cd2010-09-12 19:14:25 +0000131</div>
132<div class="sponsor">
cristy7d52cd62010-10-01 17:26:59 +0000133 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
134</div>
135<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000136 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
137</div>
138<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000139 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
140</div>
141<div class="sponsor">
cristy10c87152010-06-26 16:12:21 +0000142 <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
143</div>
144<div class="sponsor">
145 <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
146</div>
147<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000148 <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 +0000149</div>
150<div class="sponsor">
151 <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
152</div>
cristy10c87152010-06-26 16:12:21 +0000153</div>
cristyce69bb02010-07-27 19:49:46 +0000154</div>
155</div>
cristy10c87152010-06-26 16:12:21 +0000156
cristyce69bb02010-07-27 19:49:46 +0000157<div class="eastbar">
158 <script type="text/javascript">
159 <!--
160 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000161 google_ad_slot = "0574824969";
162 google_ad_width = 160;
163 google_ad_height = 600;
164 //-->
165 </script>
166 <script type="text/javascript"
167 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
168 </script>
cristy10c87152010-06-26 16:12:21 +0000169</div>
170
171<div class="main">
172
cristyd6dfc0d2010-06-27 19:30:49 +0000173<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 +0000174
175<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
176_8c.html" target="source" name="CloneImageView">CloneImageView</a></h2>
177<div class="doc-section">
178
cristy73b7d4c2010-06-27 00:31:00 +0000179<p>CloneImageView() makes a copy of the specified image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000180
181<p>The format of the CloneImageView method is:</p>
182
183<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000184 ImageView *CloneImageView(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000185</pre>
186
187<p>A description of each parameter follows:</p></ol>
188
cristy73b7d4c2010-06-27 00:31:00 +0000189<h5>image_view</h5>
190<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000191
192 </div>
193<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
194_8c.html" target="source" name="DestroyImageView">DestroyImageView</a></h2>
195<div class="doc-section">
196
cristy73b7d4c2010-06-27 00:31:00 +0000197<p>DestroyImageView() deallocates memory associated with a image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000198
199<p>The format of the DestroyImageView method is:</p>
200
201<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000202 ImageView *DestroyImageView(ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000203</pre>
204
205<p>A description of each parameter follows:</p></ol>
206
cristy73b7d4c2010-06-27 00:31:00 +0000207<h5>image_view</h5>
208<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000209
210 </div>
211<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
212_8c.html" target="source" name="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
213<div class="doc-section">
214
cristyc3ebda22010-06-27 17:11:57 +0000215<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 +0000216
cristyd6dfc0d2010-06-27 19:30:49 +0000217<p>The callback signature is:</p>
218
219<pre class="text">
220 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
221 const ImageView *duplex,ImageView *destination,const ssize_t y,
222 const int thread_id,void *context)
223</pre>
224
cristy73b7d4c2010-06-27 00:31:00 +0000225<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000226
227<pre class="text">
228 #pragma omp critical
229</pre>
230
231<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>
232
233<p>The format of the DuplexTransferImageViewIterator method is:</p>
234
235<pre class="code">
236 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
237 ImageView *duplex,ImageView *destination,
238 DuplexTransferImageViewMethod transfer,void *context)
239</pre>
240
241<p>A description of each parameter follows:</p></ol>
242
243<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000244<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000245
246<h5>duplex</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000247<ol><p>the duplex image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000248
249<h5>destination</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000250<ol><p>the destination image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000251
252<h5>transfer</h5>
253<ol><p>the transfer callback method.</p></ol>
254
255<h5>context</h5>
256<ol><p>the user defined context.</p></ol>
257
258 </div>
259<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy73b7d4c2010-06-27 00:31:00 +0000260_8c.html" target="source" name="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
261<div class="doc-section">
262
263<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p></ol>
264
265<p>The format of the GetImageViewAuthenticPixels method is:</p>
266
267<pre class="code">
268 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
269</pre>
270
271<p>A description of each parameter follows:</p></ol>
272
273<h5>image_view</h5>
274<ol><p>the image view.</p></ol>
275
276 </div>
277<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
278_8c.html" target="source" name="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
279<div class="doc-section">
280
281<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p></ol>
282
283<p>The format of the GetImageViewAuthenticPixels method is:</p>
284
285<pre class="code">
286 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
287</pre>
288
289<p>A description of each parameter follows:</p></ol>
290
291<h5>image_view</h5>
292<ol><p>the image view.</p></ol>
293
294 </div>
295<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy10c87152010-06-26 16:12:21 +0000296_8c.html" target="source" name="GetImageViewException">GetImageViewException</a></h2>
297<div class="doc-section">
298
cristy73b7d4c2010-06-27 00:31:00 +0000299<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 +0000300
301<p>The format of the GetImageViewException method is:</p>
302
303<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000304 char *GetImageViewException(const PixelImage *image_view,
cristy10c87152010-06-26 16:12:21 +0000305 ExceptionType *severity)
306</pre>
307
308<p>A description of each parameter follows:</p></ol>
309
cristy73b7d4c2010-06-27 00:31:00 +0000310<h5>image_view</h5>
311<ol><p>the pixel image_view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000312
313<h5>severity</h5>
314<ol><p>the severity of the error is returned here.</p></ol>
315
316 </div>
317<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristyc3ebda22010-06-27 17:11:57 +0000318_8c.html" target="source" name="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy10c87152010-06-26 16:12:21 +0000319<div class="doc-section">
320
cristyc3ebda22010-06-27 17:11:57 +0000321<p>GetImageViewExtent() returns the image view extent.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000322
cristyc3ebda22010-06-27 17:11:57 +0000323<p>The format of the GetImageViewExtent method is:</p>
cristy10c87152010-06-26 16:12:21 +0000324
325<pre class="code">
cristyc3ebda22010-06-27 17:11:57 +0000326 RectangleInfo GetImageViewExtent(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000327</pre>
328
329<p>A description of each parameter follows:</p></ol>
330
cristy73b7d4c2010-06-27 00:31:00 +0000331<h5>image_view</h5>
332<ol><p>the image view.</p></ol>
333
334 </div>
335<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
336_8c.html" target="source" name="GetImageViewImage">GetImageViewImage</a></h2>
337<div class="doc-section">
338
339<p>GetImageViewImage() returns the image associated with the image view.</p></ol>
340
341<p>The format of the GetImageViewImage method is:</p>
342
343<pre class="code">
344 MagickCore *GetImageViewImage(const ImageView *image_view)
345</pre>
346
347<p>A description of each parameter follows:</p></ol>
348
349<h5>image_view</h5>
350<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000351
352 </div>
353<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
354_8c.html" target="source" name="GetImageViewIterator">GetImageViewIterator</a></h2>
355<div class="doc-section">
356
cristyc3ebda22010-06-27 17:11:57 +0000357<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 +0000358
cristyd6dfc0d2010-06-27 19:30:49 +0000359<p>The callback signature is:</p>
360
361<pre class="text">
362 MagickBooleanType GetImageViewMethod(const ImageView *source,
363 const ssize_t y,const int thread_id,void *context)
364</pre>
365
cristy73b7d4c2010-06-27 00:31:00 +0000366<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000367
368<pre class="text">
369 #pragma omp critical
370</pre>
371
372<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>
373
374<p>The format of the GetImageViewIterator method is:</p>
375
376<pre class="code">
377 MagickBooleanType GetImageViewIterator(ImageView *source,
378 GetImageViewMethod get,void *context)
379</pre>
380
381<p>A description of each parameter follows:</p></ol>
382
383<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000384<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000385
386<h5>get</h5>
387<ol><p>the get callback method.</p></ol>
388
389<h5>context</h5>
390<ol><p>the user defined context.</p></ol>
391
392 </div>
393<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy73b7d4c2010-06-27 00:31:00 +0000394_8c.html" target="source" name="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
cristy10c87152010-06-26 16:12:21 +0000395<div class="doc-section">
396
cristy73b7d4c2010-06-27 00:31:00 +0000397<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000398
cristy73b7d4c2010-06-27 00:31:00 +0000399<p>The format of the GetImageViewVirtualIndexes method is:</p>
cristy10c87152010-06-26 16:12:21 +0000400
401<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000402 const IndexPacket *GetImageViewVirtualIndexes(
403 const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000404</pre>
405
406<p>A description of each parameter follows:</p></ol>
407
cristy73b7d4c2010-06-27 00:31:00 +0000408<h5>image_view</h5>
409<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000410
411 </div>
412<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy73b7d4c2010-06-27 00:31:00 +0000413_8c.html" target="source" name="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy10c87152010-06-26 16:12:21 +0000414<div class="doc-section">
415
cristy73b7d4c2010-06-27 00:31:00 +0000416<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000417
cristy73b7d4c2010-06-27 00:31:00 +0000418<p>The format of the GetImageViewVirtualPixels method is:</p>
cristy10c87152010-06-26 16:12:21 +0000419
420<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000421 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000422</pre>
423
424<p>A description of each parameter follows:</p></ol>
425
cristy73b7d4c2010-06-27 00:31:00 +0000426<h5>image_view</h5>
427<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000428
429 </div>
430<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy10c87152010-06-26 16:12:21 +0000431_8c.html" target="source" name="IsImageView">IsImageView</a></h2>
432<div class="doc-section">
433
cristy73b7d4c2010-06-27 00:31:00 +0000434<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000435
436<p>The format of the IsImageView method is:</p>
437
438<pre class="code">
cristy73b7d4c2010-06-27 00:31:00 +0000439 MagickBooleanType IsImageView(const ImageView *image_view)
cristy10c87152010-06-26 16:12:21 +0000440</pre>
441
442<p>A description of each parameter follows:</p></ol>
443
cristy73b7d4c2010-06-27 00:31:00 +0000444<h5>image_view</h5>
445<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000446
447 </div>
448<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
449_8c.html" target="source" name="NewImageView">NewImageView</a></h2>
450<div class="doc-section">
451
cristyc3ebda22010-06-27 17:11:57 +0000452<p>NewImageView() returns a image view required for all other methods in the Image View API.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000453
454<p>The format of the NewImageView method is:</p>
455
456<pre class="code">
457 ImageView *NewImageView(MagickCore *wand)
458</pre>
459
460<p>A description of each parameter follows:</p></ol>
461
462<h5>wand</h5>
463<ol><p>the wand.</p></ol>
464
465 </div>
466<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
467_8c.html" target="source" name="NewImageViewRegion">NewImageViewRegion</a></h2>
468<div class="doc-section">
469
cristyc3ebda22010-06-27 17:11:57 +0000470<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000471
472<p>The format of the NewImageViewRegion method is:</p>
473
474<pre class="code">
475 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
476 const ssize_t y,const size_t width,const size_t height)
477</pre>
478
479<p>A description of each parameter follows:</p></ol>
480
481<h5>wand</h5>
482<ol><p>the magick wand.</p></ol>
483
484<h5>x,y,columns,rows</h5>
cristyc3ebda22010-06-27 17:11:57 +0000485<ol><p>These values define the perimeter of a extent of pixel_wands view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000486
487 </div>
488<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristyd6dfc0d2010-06-27 19:30:49 +0000489_8c.html" target="source" name="SetImageViewDescription">SetImageViewDescription</a></h2>
490<div class="doc-section">
491
492<p>SetImageViewDescription() associates a description with an image view.</p></ol>
493
494<p>The format of the SetImageViewDescription method is:</p>
495
496<pre class="code">
497 void SetImageViewDescription(ImageView *image_view,
498 const char *description)
499</pre>
500
501<p>A description of each parameter follows:</p></ol>
502
503<h5>image_view</h5>
504<ol><p>the image view.</p></ol>
505
506<h5>description</h5>
507<ol><p>the image view description.</p></ol>
508
509 </div>
510<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
cristy10c87152010-06-26 16:12:21 +0000511_8c.html" target="source" name="SetImageViewIterator">SetImageViewIterator</a></h2>
512<div class="doc-section">
513
cristyc3ebda22010-06-27 17:11:57 +0000514<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 +0000515
cristyd6dfc0d2010-06-27 19:30:49 +0000516<p>The callback signature is:</p>
517
518<pre class="text">
519 MagickBooleanType SetImageViewMethod(ImageView *destination,
520 const ssize_t y,const int thread_id,void *context)
521</pre>
522
cristy73b7d4c2010-06-27 00:31:00 +0000523<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000524
525<pre class="text">
526 #pragma omp critical
527</pre>
528
529<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>
530
531<p>The format of the SetImageViewIterator method is:</p>
532
533<pre class="code">
534 MagickBooleanType SetImageViewIterator(ImageView *destination,
535 SetImageViewMethod set,void *context)
536</pre>
537
538<p>A description of each parameter follows:</p></ol>
539
540<h5>destination</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000541<ol><p>the image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000542
543<h5>set</h5>
544<ol><p>the set callback method.</p></ol>
545
546<h5>context</h5>
547<ol><p>the user defined context.</p></ol>
548
549 </div>
550<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
551_8c.html" target="source" name="TransferImageViewIterator">TransferImageViewIterator</a></h2>
552<div class="doc-section">
553
cristyc3ebda22010-06-27 17:11:57 +0000554<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 +0000555
cristyd6dfc0d2010-06-27 19:30:49 +0000556<p>The callback signature is:</p>
557
558<pre class="text">
559 MagickBooleanType TransferImageViewMethod(const ImageView *source,
560 ImageView *destination,const ssize_t y,const int thread_id,
561 void *context)
562</pre>
563
cristy73b7d4c2010-06-27 00:31:00 +0000564<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000565
566<pre class="text">
567 #pragma omp critical
568</pre>
569
570<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>
571
572<p>The format of the TransferImageViewIterator method is:</p>
573
574<pre class="code">
575 MagickBooleanType TransferImageViewIterator(ImageView *source,
576 ImageView *destination,TransferImageViewMethod transfer,void *context)
577</pre>
578
579<p>A description of each parameter follows:</p></ol>
580
581<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000582<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000583
584<h5>destination</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000585<ol><p>the destination image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000586
587<h5>transfer</h5>
588<ol><p>the transfer callback method.</p></ol>
589
590<h5>context</h5>
591<ol><p>the user defined context.</p></ol>
592
593 </div>
594<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
595_8c.html" target="source" name="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
596<div class="doc-section">
597
cristyc3ebda22010-06-27 17:11:57 +0000598<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 +0000599
cristyd6dfc0d2010-06-27 19:30:49 +0000600<p>The callback signature is:</p>
601
602<pre class="text">
603 MagickBooleanType UpdateImageViewMethod(ImageView *source,
604 const ssize_t y,const int thread_id,void *context)
605</pre>
606
cristy73b7d4c2010-06-27 00:31:00 +0000607<p>Use this pragma if the view is not single threaded:</p>
cristy10c87152010-06-26 16:12:21 +0000608
609<pre class="text">
610 #pragma omp critical
611</pre>
612
613<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>
614
615<p>The format of the UpdateImageViewIterator method is:</p>
616
617<pre class="code">
618 MagickBooleanType UpdateImageViewIterator(ImageView *source,
619 UpdateImageViewMethod update,void *context)
620</pre>
621
622<p>A description of each parameter follows:</p></ol>
623
624<h5>source</h5>
cristy73b7d4c2010-06-27 00:31:00 +0000625<ol><p>the source image view.</p></ol>
cristy10c87152010-06-26 16:12:21 +0000626
627<h5>update</h5>
628<ol><p>the update callback method.</p></ol>
629
630<h5>context</h5>
631<ol><p>the user defined context.</p></ol>
632
633 </div>
634
635</div>
636
637<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000638 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000639 <span id="linkbar-center">
640 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000641 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000642 </span>
643 <span id="linkbar-east">&nbsp;</span>
644 </div>
645 <div class="footer">
646 <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
647 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
648 </div>
649 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000650 <script type="text/javascript">
651 var _gaq = _gaq || [];
652 _gaq.push(['_setAccount', 'UA-17690367-1']);
653 _gaq.push(['_trackPageview']);
654
655 (function() {
656 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
657 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
658 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
659 })();
660 </script>
cristy10c87152010-06-26 16:12:21 +0000661</body>
662</html>