blob: 07fc1916298db3c8bdfdb7379e1ab4974087fb79 [file] [log] [blame]
cristydcca3fa2010-12-29 21:50:07 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
cristy2bd2a982011-02-15 00:52:58 +00003<html version="-//W3C//DTD XHTML 1.1//EN"
4 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="http://www.w3.org/1999/xhtml
7 http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
cristy10c87152010-06-26 16:12:21 +00008<head>
cristy3c98a4f2010-08-13 20:09:41 +00009 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
10 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +000011 <title>ImageMagick: MagickCore, C API for ImageMagick: Image View Methods</title>
cristy10c87152010-06-26 16:12:21 +000012 <meta http-equiv="Content-Language" content="en-US"/>
13 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
14 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000015 <meta name="Application-name" content="ImageMagick"/>
cristye6e84152011-06-06 14:16:49 +000016 <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images automagically."/>
cristy3c98a4f2010-08-13 20:09:41 +000017 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy10c87152010-06-26 16:12:21 +000018 <meta name="Generator" content="PHP"/>
cristye6e84152011-06-06 14:16:49 +000019 <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, image, view, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Image, Processing, Automagically"/>
cristy10c87152010-06-26 16:12:21 +000020 <meta name="Rating" content="GENERAL"/>
21 <meta name="Robots" content="INDEX, FOLLOW"/>
22 <meta name="Generator" content="ImageMagick Studio LLC"/>
23 <meta name="Author" content="ImageMagick Studio LLC"/>
24 <meta name="Revisit-after" content="2 DAYS"/>
25 <meta name="Resource-type" content="document"/>
cristy4103d562010-12-10 01:38:54 +000026 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy10c87152010-06-26 16:12:21 +000027 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000028 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000029 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
cristy29c5c992011-06-25 13:58:49 +000030 <link rel="canonical" href="http://www.imagemagick.org" />
cristy3c98a4f2010-08-13 20:09:41 +000031 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy7a40ba82011-01-08 20:31:18 +000032 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy29c5c992011-06-25 13:58:49 +000033 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
cristy3c98a4f2010-08-13 20:09:41 +000034 <style type="text/css" media="all">
35 @import url("../../www/magick.css");
36 </style>
cristy29c5c992011-06-25 13:58:49 +000037 <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
cristydcca3fa2010-12-29 21:50:07 +000038 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000039 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
cristy361f4662010-12-31 23:02:52 +000040 <script type="text/javascript">
41 $(document).ready(function() {
42 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
43 'transitionIn' : 'elastic',
44 'transitionOut' : 'elastic',
45 'overlayShow' : false,
46 'opacity' : true
47 });
48 });
49 </script>
cristy10c87152010-06-26 16:12:21 +000050</head>
51
52<body id="www-imagemagick-org">
53<div class="titlebar">
cristyb52981c2011-03-19 17:09:31 +000054<div style="margin: 17px auto; float: left;">
55 <script type="text/javascript">
56 <!--
57 google_ad_client = "pub-3129977114552745";
58 google_ad_slot = "5439289906";
59 google_ad_width = 728;
60 google_ad_height = 90;
61 //-->
62 </script>
63 <script type="text/javascript"
64 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
65 </script>
66</div>
cristy10c87152010-06-26 16:12:21 +000067<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000068 <img src="../../images/logo.jpg"
69 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000070 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy10c87152010-06-26 16:12:21 +000071<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000072 <img src="../../images/sprite.jpg"
73 alt="ImageMagick Sprite"
cristy10c87152010-06-26 16:12:21 +000074 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
75</div>
76
cristyce69bb02010-07-27 19:49:46 +000077<div class="westbar">
cristy10c87152010-06-26 16:12:21 +000078
79<div class="menu">
80 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
81</div>
cristy10c87152010-06-26 16:12:21 +000082<div class="menu">
83 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
84</div>
85<div class="sub">
86 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
87</div>
88<div class="sub">
89 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
90</div>
91<div class="sub">
cristye6e84152011-06-06 14:16:49 +000092 <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
cristyda16f162011-02-19 23:52:17 +000093</div>
94<div class="sub">
cristy10c87152010-06-26 16:12:21 +000095 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
96</div>
97<div class="sep"></div>
98<div class="menu">
99 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
100</div>
101<div class="sub">
102 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
103</div>
104<div class="sub">
105 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
106</div>
107<div class="sub">
108 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
109</div>
110<div class="menu">
111 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
112</div>
113<div class="sub">
114 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
115</div>
116<div class="sub">
117 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
118</div>
119<div class="sub">
120 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
121</div>
122<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000123 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy10c87152010-06-26 16:12:21 +0000124</div>
125<div class="sep"></div>
126<div class="menu">
127 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
128</div>
129<div class="sub">
130 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
131</div>
132<div class="sub">
133 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
134 </div>
135<div class="menu">
136 <a title="Resources" href="../../www/resources.html">Resources</a>
137</div>
138<div class="menu">
139 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
140</div>
141<div class="menu">
142 <a title="Download" href="../../www/download.html">Download</a>
143</div>
144<div class="sep"></div>
145<div class="menu">
cristy52923442011-01-15 22:54:31 +0000146 <a title="Search" href="../../www/search.html">Search</a>
cristy10c87152010-06-26 16:12:21 +0000147</div>
148<div class="sep"></div>
149<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000150 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy10c87152010-06-26 16:12:21 +0000151</div>
152<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000153 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy10c87152010-06-26 16:12:21 +0000154</div>
155<div class="sep"></div>
156<div class="menu">
cristy10549a12011-05-15 19:04:46 +0000157 <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy10c87152010-06-26 16:12:21 +0000158
cristyb52981c2011-03-19 17:09:31 +0000159<a href="http://www.networkredux.com">
160 <img src="../../images/networkredux.png" alt="[sponsor]"
161 style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
cristy10c87152010-06-26 16:12:21 +0000162<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000163<div class="sponsor">
cristy81492d62011-06-07 16:41:42 +0000164 <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
165</div>
166<div class="sponsor">
cristy84134182011-06-15 22:59:00 +0000167 <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
168</div>
169<div class="sponsor">
cristy81492d62011-06-07 16:41:42 +0000170 <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
171</div>
172<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000173 <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
174</div>
175<div class="sponsor">
176 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
177</div>
178<div class="sponsor">
cristy4bf6e232011-05-21 01:43:33 +0000179 <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
cristy45dbd322011-03-27 16:40:38 +0000180</div>
181<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000182 <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
cristy4c54bbb2011-03-17 13:53:13 +0000183</div>
184<div class="sponsor">
cristy575d5ee2011-05-24 01:59:01 +0000185 <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
cristy4bf6e232011-05-21 01:43:33 +0000186</div>
187<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000188 <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
cristyaf8d6652011-02-04 21:57:45 +0000189</div>
190<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000191 <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
cristy73fd1cd2010-09-12 19:14:25 +0000192</div>
193<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000194 <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
cristyee742642011-02-26 02:49:59 +0000195</div>
196<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000197 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
cristy851dbce2010-08-06 21:40:00 +0000198</div>
cristyec6b4752011-01-08 03:16:23 +0000199<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000200 <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
cristybaacd172011-04-30 23:11:03 +0000201</div>
202<div class="sponsor">
cristy29c5c992011-06-25 13:58:49 +0000203 <a rel="follow" title="Sponsor: Fernsehdienst Berlin" href="http://www.atlas-multimedia.de">Fernsehdienst Berlin</a><!-- 2011090100025 atlas.multimedia-->
cristyec6b4752011-01-08 03:16:23 +0000204</div>
cristy10c87152010-06-26 16:12:21 +0000205</div>
cristyce69bb02010-07-27 19:49:46 +0000206</div>
207</div>
cristy10c87152010-06-26 16:12:21 +0000208
cristyce69bb02010-07-27 19:49:46 +0000209<div class="eastbar">
cristy29c5c992011-06-25 13:58:49 +0000210<div style="margin: 9pt 9pt 9pt 9pt;">
211 <div class="g-plusone" data-size="standard" data-count="false"></div>
212</div>
cristy10c87152010-06-26 16:12:21 +0000213</div>
214
215<div class="main">
216
cristy350dea42011-02-15 17:31:04 +0000217<h1>Module image-view Methods</h1>
cristy6f77f692011-02-15 15:31:39 +0000218<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 +0000219
cristy350dea42011-02-15 17:31:04 +0000220<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000221<div class="doc-section">
222
223<p>CloneImageView() makes a copy of the specified image view.</p>
224
225<p>The format of the CloneImageView method is:</p>
226
227<pre class="code">
228 ImageView *CloneImageView(const ImageView *image_view)
229</pre>
230
231<p>A description of each parameter follows:</p>
232
233<h5>image_view</h5>
234<p>the image view.</p>
235
236 </div>
cristy350dea42011-02-15 17:31:04 +0000237<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000238<div class="doc-section">
239
240<p>DestroyImageView() deallocates memory associated with a image view.</p>
241
242<p>The format of the DestroyImageView method is:</p>
243
244<pre class="code">
245 ImageView *DestroyImageView(ImageView *image_view)
246</pre>
247
248<p>A description of each parameter follows:</p>
249
250<h5>image_view</h5>
251<p>the image view.</p>
252
253 </div>
cristy350dea42011-02-15 17:31:04 +0000254<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000255<div class="doc-section">
256
257<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>
258
259<p>The callback signature is:</p>
260
261<pre class="text">
262 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
263 const ImageView *duplex,ImageView *destination,const ssize_t y,
264 const int thread_id,void *context)
265</pre>
266
267<p>Use this pragma if the view is not single threaded:</p>
268
269<pre class="text">
270 #pragma omp critical
271</pre>
272
273<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
274
275<p>The format of the DuplexTransferImageViewIterator method is:</p>
276
277<pre class="code">
278 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
279 ImageView *duplex,ImageView *destination,
280 DuplexTransferImageViewMethod transfer,void *context)
281</pre>
282
283<p>A description of each parameter follows:</p>
284
285<h5>source</h5>
286<p>the source image view.</p>
287
288<h5>duplex</h5>
289<p>the duplex image view.</p>
290
291<h5>destination</h5>
292<p>the destination image view.</p>
293
294<h5>transfer</h5>
295<p>the transfer callback method.</p>
296
297<h5>context</h5>
298<p>the user defined context.</p>
299
300 </div>
cristy350dea42011-02-15 17:31:04 +0000301<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000302<div class="doc-section">
303
304<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
305
306<p>The format of the GetImageViewAuthenticPixels method is:</p>
307
308<pre class="code">
309 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
310</pre>
311
312<p>A description of each parameter follows:</p>
313
314<h5>image_view</h5>
315<p>the image view.</p>
316
317 </div>
cristy350dea42011-02-15 17:31:04 +0000318<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000319<div class="doc-section">
320
321<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
322
323<p>The format of the GetImageViewAuthenticPixels method is:</p>
324
325<pre class="code">
326 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
327</pre>
328
329<p>A description of each parameter follows:</p>
330
331<h5>image_view</h5>
332<p>the image view.</p>
333
334 </div>
cristy350dea42011-02-15 17:31:04 +0000335<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000336<div class="doc-section">
337
338<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
339
340<p>The format of the GetImageViewException method is:</p>
341
342<pre class="code">
343 char *GetImageViewException(const PixelImage *image_view,
344 ExceptionType *severity)
345</pre>
346
347<p>A description of each parameter follows:</p>
348
349<h5>image_view</h5>
350<p>the pixel image_view.</p>
351
352<h5>severity</h5>
353<p>the severity of the error is returned here.</p>
354
355 </div>
cristy350dea42011-02-15 17:31:04 +0000356<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000357<div class="doc-section">
358
359<p>GetImageViewExtent() returns the image view extent.</p>
360
361<p>The format of the GetImageViewExtent method is:</p>
362
363<pre class="code">
364 RectangleInfo GetImageViewExtent(const ImageView *image_view)
365</pre>
366
367<p>A description of each parameter follows:</p>
368
369<h5>image_view</h5>
370<p>the image view.</p>
371
372 </div>
cristy350dea42011-02-15 17:31:04 +0000373<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000374<div class="doc-section">
375
376<p>GetImageViewImage() returns the image associated with the image view.</p>
377
378<p>The format of the GetImageViewImage method is:</p>
379
380<pre class="code">
381 MagickCore *GetImageViewImage(const ImageView *image_view)
382</pre>
383
384<p>A description of each parameter follows:</p>
385
386<h5>image_view</h5>
387<p>the image view.</p>
388
389 </div>
cristy350dea42011-02-15 17:31:04 +0000390<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000391<div class="doc-section">
392
393<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>
394
395<p>The callback signature is:</p>
396
397<pre class="text">
398 MagickBooleanType GetImageViewMethod(const ImageView *source,
399 const ssize_t y,const int thread_id,void *context)
400</pre>
401
402<p>Use this pragma if the view is not single threaded:</p>
403
404<pre class="text">
405 #pragma omp critical
406</pre>
407
408<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
409
410<p>The format of the GetImageViewIterator method is:</p>
411
412<pre class="code">
413 MagickBooleanType GetImageViewIterator(ImageView *source,
414 GetImageViewMethod get,void *context)
415</pre>
416
417<p>A description of each parameter follows:</p>
418
419<h5>source</h5>
420<p>the source image view.</p>
421
422<h5>get</h5>
423<p>the get callback method.</p>
424
425<h5>context</h5>
426<p>the user defined context.</p>
427
428 </div>
cristy350dea42011-02-15 17:31:04 +0000429<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000430<div class="doc-section">
431
432<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
433
434<p>The format of the GetImageViewVirtualIndexes method is:</p>
435
436<pre class="code">
437 const IndexPacket *GetImageViewVirtualIndexes(
438 const ImageView *image_view)
439</pre>
440
441<p>A description of each parameter follows:</p>
442
443<h5>image_view</h5>
444<p>the image view.</p>
445
446 </div>
cristy350dea42011-02-15 17:31:04 +0000447<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000448<div class="doc-section">
449
450<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
451
452<p>The format of the GetImageViewVirtualPixels method is:</p>
453
454<pre class="code">
455 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
456</pre>
457
458<p>A description of each parameter follows:</p>
459
460<h5>image_view</h5>
461<p>the image view.</p>
462
463 </div>
cristy350dea42011-02-15 17:31:04 +0000464<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000465<div class="doc-section">
466
467<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
468
469<p>The format of the IsImageView method is:</p>
470
471<pre class="code">
472 MagickBooleanType IsImageView(const ImageView *image_view)
473</pre>
474
475<p>A description of each parameter follows:</p>
476
477<h5>image_view</h5>
478<p>the image view.</p>
479
480 </div>
cristy350dea42011-02-15 17:31:04 +0000481<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000482<div class="doc-section">
483
484<p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
485
486<p>The format of the NewImageView method is:</p>
487
488<pre class="code">
489 ImageView *NewImageView(MagickCore *wand)
490</pre>
491
492<p>A description of each parameter follows:</p>
493
494<h5>wand</h5>
495<p>the wand.</p>
496
497 </div>
cristy350dea42011-02-15 17:31:04 +0000498<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000499<div class="doc-section">
500
501<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
502
503<p>The format of the NewImageViewRegion method is:</p>
504
505<pre class="code">
506 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
507 const ssize_t y,const size_t width,const size_t height)
508</pre>
509
510<p>A description of each parameter follows:</p>
511
512<h5>wand</h5>
513<p>the magick wand.</p>
514
515<h5>x,y,columns,rows</h5>
516<p>These values define the perimeter of a extent of pixel_wands view.</p>
517
518 </div>
cristy350dea42011-02-15 17:31:04 +0000519<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000520<div class="doc-section">
521
522<p>SetImageViewDescription() associates a description with an image view.</p>
523
524<p>The format of the SetImageViewDescription method is:</p>
525
526<pre class="code">
527 void SetImageViewDescription(ImageView *image_view,
528 const char *description)
529</pre>
530
531<p>A description of each parameter follows:</p>
532
533<h5>image_view</h5>
534<p>the image view.</p>
535
536<h5>description</h5>
537<p>the image view description.</p>
538
539 </div>
cristy350dea42011-02-15 17:31:04 +0000540<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000541<div class="doc-section">
542
543<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>
544
545<p>The callback signature is:</p>
546
547<pre class="text">
548 MagickBooleanType SetImageViewMethod(ImageView *destination,
549 const ssize_t y,const int thread_id,void *context)
550</pre>
551
552<p>Use this pragma if the view is not single threaded:</p>
553
554<pre class="text">
555 #pragma omp critical
556</pre>
557
558<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
559
560<p>The format of the SetImageViewIterator method is:</p>
561
562<pre class="code">
563 MagickBooleanType SetImageViewIterator(ImageView *destination,
564 SetImageViewMethod set,void *context)
565</pre>
566
567<p>A description of each parameter follows:</p>
568
569<h5>destination</h5>
570<p>the image view.</p>
571
572<h5>set</h5>
573<p>the set callback method.</p>
574
575<h5>context</h5>
576<p>the user defined context.</p>
577
578 </div>
cristy350dea42011-02-15 17:31:04 +0000579<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000580<div class="doc-section">
581
582<p>SetImageViewThreads() sets the number of threads in a thread team.</p>
583
584<p>The format of the SetImageViewDescription method is:</p>
585
586<pre class="code">
587 void SetImageViewThreads(ImageView *image_view,
588 const size_t number_threads)
589</pre>
590
591<p>A description of each parameter follows:</p>
592
593<h5>image_view</h5>
594<p>the image view.</p>
595
596<h5>number_threads</h5>
597<p>the number of threads in a thread team.</p>
598
599 </div>
cristy350dea42011-02-15 17:31:04 +0000600<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000601<div class="doc-section">
602
603<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>
604
605<p>The callback signature is:</p>
606
607<pre class="text">
608 MagickBooleanType TransferImageViewMethod(const ImageView *source,
609 ImageView *destination,const ssize_t y,const int thread_id,
610 void *context)
611</pre>
612
613<p>Use this pragma if the view is not single threaded:</p>
614
615<pre class="text">
616 #pragma omp critical
617</pre>
618
619<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
620
621<p>The format of the TransferImageViewIterator method is:</p>
622
623<pre class="code">
624 MagickBooleanType TransferImageViewIterator(ImageView *source,
625 ImageView *destination,TransferImageViewMethod transfer,void *context)
626</pre>
627
628<p>A description of each parameter follows:</p>
629
630<h5>source</h5>
631<p>the source image view.</p>
632
633<h5>destination</h5>
634<p>the destination image view.</p>
635
636<h5>transfer</h5>
637<p>the transfer callback method.</p>
638
639<h5>context</h5>
640<p>the user defined context.</p>
641
642 </div>
cristy350dea42011-02-15 17:31:04 +0000643<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000644<div class="doc-section">
645
646<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>
647
648<p>The callback signature is:</p>
649
650<pre class="text">
651 MagickBooleanType UpdateImageViewMethod(ImageView *source,
652 const ssize_t y,const int thread_id,void *context)
653</pre>
654
655<p>Use this pragma if the view is not single threaded:</p>
656
657<pre class="text">
658 #pragma omp critical
659</pre>
660
661<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
662
663<p>The format of the UpdateImageViewIterator method is:</p>
664
665<pre class="code">
666 MagickBooleanType UpdateImageViewIterator(ImageView *source,
667 UpdateImageViewMethod update,void *context)
668</pre>
669
670<p>A description of each parameter follows:</p>
671
672<h5>source</h5>
673<p>the source image view.</p>
674
675<h5>update</h5>
676<p>the update callback method.</p>
677
678<h5>context</h5>
679<p>the user defined context.</p>
680
681 </div>
cristy10c87152010-06-26 16:12:21 +0000682
683</div>
684
685<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000686 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000687 <span id="linkbar-center">
688 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000689 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000690 </span>
691 <span id="linkbar-east">&nbsp;</span>
692 </div>
693 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000694 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy10c87152010-06-26 16:12:21 +0000695 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
696 </div>
697 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000698 <script type="text/javascript">
699 var _gaq = _gaq || [];
700 _gaq.push(['_setAccount', 'UA-17690367-1']);
701 _gaq.push(['_trackPageview']);
702
703 (function() {
704 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
705 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
706 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
707 })();
708 </script>
cristy10c87152010-06-26 16:12:21 +0000709</body>
710</html>