blob: 92ad4a3b561452c4cab04f23c52e37438c11a777 [file] [log] [blame]
cristy06f63f22012-10-31 00:50:07 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<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">
8<head>
9 <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
cristy8ee7f242013-06-20 16:08:44 +000010 <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4"/>
cristyffb69ed2010-12-25 00:06:48 +000011 <title>ImageMagick: MagickCore, C API for ImageMagick: Image View Methods</title>
cristy751980d2012-06-03 23:18:35 +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"/>
15 <meta name="application-name" content="ImageMagick"/>
cristy8ee7f242013-06-20 16:08:44 +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 or transform images automagically."/>
cristy751980d2012-06-03 23:18:35 +000017 <meta name="application-url" content="http://www.imagemagick.org"/>
18 <meta name="generator" content="PHP"/>
cristy8ee7f242013-06-20 16:08:44 +000019 <meta name="keywords" content="magickcore, c, api, for, imagemagick:, image, view, methods, ImageMagick, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"/>
cristy751980d2012-06-03 23:18:35 +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"/>
cristy72da67d2013-02-24 21:40:48 +000026 <meta name="copyright" content="Copyright (c) 1999-2012 ImageMagick Studio LLC"/>
cristy751980d2012-06-03 23:18:35 +000027 <meta name="distribution" content="Global"/>
cristy72da67d2013-02-24 21:40:48 +000028 <link rel="icon" href="../../images/wand.png"/>
29 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
cristy06f63f22012-10-31 00:50:07 +000030 <link rel="canonical" href="http://www.imagemagick.org" />
31 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy8ee7f242013-06-20 16:08:44 +000032
33 <!-- Add jQuery library -->
34 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
35
36 <!-- Add mousewheel plugin (this is optional) -->
37 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
38
39 <!-- Add fancyBox -->
40 <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/jquery.fancybox.css?v=2.0.6" type="text/css" media="screen" />
41 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/jquery.fancybox.pack.js?v=2.0.6"></script>
42
43 <!-- Optionally add helpers - button, thumbnail and/or media -->
44 <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen" />
45 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
46 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
47
48 <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen" />
49 <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=2.0.6"></script>
50
cristy72da67d2013-02-24 21:40:48 +000051 <script type="text/javascript">
cristy8ee7f242013-06-20 16:08:44 +000052 $(document).ready(function() {
53 $(".fancybox").fancybox();
54 });
cristy72da67d2013-02-24 21:40:48 +000055 </script>
cristy8ee7f242013-06-20 16:08:44 +000056
57 <!-- ImageMagick style -->
58 <style type="text/css" media="all">
59 @import url("../../www/magick.css");
60 </style>
cristy06f63f22012-10-31 00:50:07 +000061</head>
62
63<body id="www-imagemagick-org">
cristy8ee7f242013-06-20 16:08:44 +000064
65<script>
66 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
67 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
68 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
69 })(window,document,'offline-script','//127.0.0.1/analytics.js','ga');
70
71 ga('create', 'UA-40133312-1', 'imagemagick.org');
72 ga('send', 'pageview');
73</script>
74
cristy06f63f22012-10-31 00:50:07 +000075<div class="titlebar">
76<div style="margin: 17px auto; float: left;">
77 <script type="text/javascript">
78 <!--
79 google_ad_client = "pub-3129977114552745";
80 google_ad_slot = "5439289906";
81 google_ad_width = 728;
82 google_ad_height = 90;
83 //-->
84 </script>
85 <script type="text/javascript"
cristy8ee7f242013-06-20 16:08:44 +000086 src="http://127.0.0.1/pagead/show_ads.js">
cristy06f63f22012-10-31 00:50:07 +000087 </script>
88</div>
cristy8ee7f242013-06-20 16:08:44 +000089<a href="http://www.imagemagick.org/discourse-server/">
cristy72da67d2013-02-24 21:40:48 +000090 <img src="../../images/logo.jpg"
cristy06f63f22012-10-31 00:50:07 +000091 alt="ImageMagick Logo"
92 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy8ee7f242013-06-20 16:08:44 +000093<a href="../../index.html">
cristy72da67d2013-02-24 21:40:48 +000094 <img src="../../images/sprite.jpg"
cristy06f63f22012-10-31 00:50:07 +000095 alt="ImageMagick Sprite"
96 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
97</div>
98
99<div class="westbar">
100
cristy10c87152010-06-26 16:12:21 +0000101<div class="menu">
cristy8ee7f242013-06-20 16:08:44 +0000102 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy10c87152010-06-26 16:12:21 +0000103</div>
cristy10c87152010-06-26 16:12:21 +0000104<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000105 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
cristy10c87152010-06-26 16:12:21 +0000106</div>
107<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000108 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
cristy10c87152010-06-26 16:12:21 +0000109</div>
110<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000111 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
cristy10c87152010-06-26 16:12:21 +0000112</div>
113<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000114 <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
cristyda16f162011-02-19 23:52:17 +0000115</div>
116<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000117 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
cristy10c87152010-06-26 16:12:21 +0000118</div>
cristy06f63f22012-10-31 00:50:07 +0000119<div class="sep"></div>
cristy10c87152010-06-26 16:12:21 +0000120<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000121 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy10c87152010-06-26 16:12:21 +0000122</div>
123<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000124 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy10c87152010-06-26 16:12:21 +0000125</div>
126<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000127 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy10c87152010-06-26 16:12:21 +0000128</div>
129<div class="sub">
130 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
131</div>
132<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000133 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy10c87152010-06-26 16:12:21 +0000134</div>
135<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000136 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy10c87152010-06-26 16:12:21 +0000137</div>
138<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000139 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy10c87152010-06-26 16:12:21 +0000140</div>
141<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000142 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy10c87152010-06-26 16:12:21 +0000143</div>
144<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000145 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy10c87152010-06-26 16:12:21 +0000146</div>
cristy06f63f22012-10-31 00:50:07 +0000147<div class="sep"></div>
cristy10c87152010-06-26 16:12:21 +0000148<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000149 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy10c87152010-06-26 16:12:21 +0000150</div>
151<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000152 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy10c87152010-06-26 16:12:21 +0000153</div>
154<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000155 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy10c87152010-06-26 16:12:21 +0000156 </div>
157<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000158 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy10c87152010-06-26 16:12:21 +0000159</div>
160<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000161 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
cristy10c87152010-06-26 16:12:21 +0000162</div>
163<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000164 <a title="Download" href="../../www/download.html">Download</a>
cristy10c87152010-06-26 16:12:21 +0000165</div>
cristy06f63f22012-10-31 00:50:07 +0000166<div class="sep"></div>
cristy10c87152010-06-26 16:12:21 +0000167<div class="menu">
cristy3dfa2192013-02-24 22:46:05 +0000168 <a title="Search" href="http://www.imagemagick.org/script/search.php">Search</a>
cristy10c87152010-06-26 16:12:21 +0000169</div>
cristy06f63f22012-10-31 00:50:07 +0000170<div class="sep"></div>
cristy10c87152010-06-26 16:12:21 +0000171<div class="menu">
cristyd8833bf2013-02-24 22:14:53 +0000172 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy10c87152010-06-26 16:12:21 +0000173</div>
174<div class="sub">
cristyd8833bf2013-02-24 22:14:53 +0000175 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy10c87152010-06-26 16:12:21 +0000176</div>
cristy06f63f22012-10-31 00:50:07 +0000177<div class="sep"></div>
cristy8ee7f242013-06-20 16:08:44 +0000178<div class="menu">
179 <a title="Support ImageMagick Development" href="../../www/support.html">Support ImageMagick Development</a>
cristyce69bb02010-07-27 19:49:46 +0000180</div>
cristy06f63f22012-10-31 00:50:07 +0000181</div>
182
183<div class="eastbar">
cristy06f63f22012-10-31 00:50:07 +0000184 <script type="text/javascript">
cristy8ee7f242013-06-20 16:08:44 +0000185 /* <![CDATA[ */
cristy06f63f22012-10-31 00:50:07 +0000186 (function() {
cristy8ee7f242013-06-20 16:08:44 +0000187 var po = document.createElement('offline-script'), t = document.getElementsByTagName('offline-script')[0];
188 po.type = 'text/javascript';
189 po.async = true;
190 po.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
191 var script = document.getElementsByTagName('offline-script')[0];
192 script.parentNode.insertBefore(po, script);
cristy06f63f22012-10-31 00:50:07 +0000193 })();
cristy8ee7f242013-06-20 16:08:44 +0000194 /* ]]> */
cristy06f63f22012-10-31 00:50:07 +0000195 </script>
cristy8ee7f242013-06-20 16:08:44 +0000196 <div> <a class="FlattrButton" style="display:none;" rev="flattr;button:compact;" href="http://www.imagemagick.org/"></a></div>
197 <noscript>
198 <a href="http://flattr.com/thing/947300/Convert-Edit-And-Compose-Images" target="_blank">
199 <img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" width="93" height="20" border="0" /></a>
200 </noscript>
201 <div class="g-plusone" id="gplusone"></div>
202 <script type="text/javascript">
203 /* <![CDATA[ */
204 window.___gcfg = {
205 lang: 'en-US'
206 };
207
208 (function() {
209 var po = document.createElement('offline-script');
210 po.type = 'text/javascript';
211 po.async = true;
212 po.src = 'https://127.0.0.1/js/plusone.js';
213 var script = document.getElementsByTagName('offline-script')[0];
214 script.parentNode.insertBefore(po, script);
215 })();
216 var gplusone = document.getElementById("gplusone");
217 gplusone.setAttribute("data-size","medium");
218 gplusone.setAttribute("data-count","true");
219 /* ]]> */
220 </script>
cristy06f63f22012-10-31 00:50:07 +0000221</div>
222
223<div class="main">
224
cristy20398432011-08-11 01:31:50 +0000225<h1>Module image-view Methods</h1>
cristyd8833bf2013-02-24 22:14:53 +0000226<p class="navigation-index">[<a href="image-view.html#CloneImageView">CloneImageView</a> &bull; <a href="image-view.html#DestroyImageView">DestroyImageView</a> &bull; <a href="image-view.html#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> &bull; <a href="image-view.html#GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a> &bull; <a href="image-view.html#GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a> &bull; <a href="image-view.html#GetImageViewException">GetImageViewException</a> &bull; <a href="image-view.html#GetImageViewExtent">GetImageViewExtent</a> &bull; <a href="image-view.html#GetImageViewImage">GetImageViewImage</a> &bull; <a href="image-view.html#GetImageViewIterator">GetImageViewIterator</a> &bull; <a href="image-view.html#GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a> &bull; <a href="image-view.html#GetImageViewVirtualPixels">GetImageViewVirtualPixels</a> &bull; <a href="image-view.html#IsImageView">IsImageView</a> &bull; <a href="image-view.html#NewImageView">NewImageView</a> &bull; <a href="image-view.html#NewImageViewRegion">NewImageViewRegion</a> &bull; <a href="image-view.html#SetImageViewDescription">SetImageViewDescription</a> &bull; <a href="image-view.html#SetImageViewIterator">SetImageViewIterator</a> &bull; <a href="image-view.html#SetImageViewThreads">SetImageViewThreads</a> &bull; <a href="image-view.html#TransferImageViewIterator">TransferImageViewIterator</a> &bull; <a href="image-view.html#UpdateImageViewIterator">UpdateImageViewIterator</a>]</p>
cristy6f77f692011-02-15 15:31:39 +0000227
cristy20398432011-08-11 01:31:50 +0000228<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
229<div class="doc-section">
230
231<p>CloneImageView() makes a copy of the specified image view.</p>
232
233<p>The format of the CloneImageView method is:</p>
234
235<pre class="code">
236 ImageView *CloneImageView(const ImageView *image_view)
237</pre>
238
239<p>A description of each parameter follows:</p>
240
241<h5>image_view</h5>
242<p>the image view.</p>
243
244 </div>
245<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
246<div class="doc-section">
247
248<p>DestroyImageView() deallocates memory associated with a image view.</p>
249
250<p>The format of the DestroyImageView method is:</p>
251
252<pre class="code">
253 ImageView *DestroyImageView(ImageView *image_view)
254</pre>
255
256<p>A description of each parameter follows:</p>
257
258<h5>image_view</h5>
259<p>the image view.</p>
260
261 </div>
262<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
263<div class="doc-section">
264
265<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>
266
267<p>The callback signature is:</p>
268
269<pre class="text">
270 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
271 const ImageView *duplex,ImageView *destination,const ssize_t y,
272 const int thread_id,void *context)
273</pre>
274
275<p>Use this pragma if the view is not single threaded:</p>
276
277<pre class="text">
278 #pragma omp critical
279</pre>
280
281<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
282
283<p>The format of the DuplexTransferImageViewIterator method is:</p>
284
285<pre class="code">
286 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
287 ImageView *duplex,ImageView *destination,
288 DuplexTransferImageViewMethod transfer,void *context)
289</pre>
290
291<p>A description of each parameter follows:</p>
292
293<h5>source</h5>
294<p>the source image view.</p>
295
296<h5>duplex</h5>
297<p>the duplex image view.</p>
298
299<h5>destination</h5>
300<p>the destination image view.</p>
301
302<h5>transfer</h5>
303<p>the transfer callback method.</p>
304
305<h5>context</h5>
306<p>the user defined context.</p>
307
308 </div>
309<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticIndexes">GetImageViewAuthenticIndexes</a></h2>
310<div class="doc-section">
311
312<p>GetImageViewAuthenticIndexes() returns the image view authentic indexes.</p>
313
314<p>The format of the GetImageViewAuthenticPixels method is:</p>
315
316<pre class="code">
317 IndexPacket *GetImageViewAuthenticIndexes(const ImageView *image_view)
318</pre>
319
320<p>A description of each parameter follows:</p>
321
322<h5>image_view</h5>
323<p>the image view.</p>
324
325 </div>
326<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
327<div class="doc-section">
328
329<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
330
331<p>The format of the GetImageViewAuthenticPixels method is:</p>
332
333<pre class="code">
334 PixelPacket *GetImageViewAuthenticPixels(const ImageView *image_view)
335</pre>
336
337<p>A description of each parameter follows:</p>
338
339<h5>image_view</h5>
340<p>the image view.</p>
341
342 </div>
343<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
344<div class="doc-section">
345
346<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
347
348<p>The format of the GetImageViewException method is:</p>
349
350<pre class="code">
351 char *GetImageViewException(const PixelImage *image_view,
352 ExceptionType *severity)
353</pre>
354
355<p>A description of each parameter follows:</p>
356
357<h5>image_view</h5>
358<p>the pixel image_view.</p>
359
360<h5>severity</h5>
361<p>the severity of the error is returned here.</p>
362
363 </div>
364<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
365<div class="doc-section">
366
367<p>GetImageViewExtent() returns the image view extent.</p>
368
369<p>The format of the GetImageViewExtent method is:</p>
370
371<pre class="code">
372 RectangleInfo GetImageViewExtent(const ImageView *image_view)
373</pre>
374
375<p>A description of each parameter follows:</p>
376
377<h5>image_view</h5>
378<p>the image view.</p>
379
380 </div>
381<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
382<div class="doc-section">
383
384<p>GetImageViewImage() returns the image associated with the image view.</p>
385
386<p>The format of the GetImageViewImage method is:</p>
387
388<pre class="code">
389 MagickCore *GetImageViewImage(const ImageView *image_view)
390</pre>
391
392<p>A description of each parameter follows:</p>
393
394<h5>image_view</h5>
395<p>the image view.</p>
396
397 </div>
398<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
399<div class="doc-section">
400
401<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>
402
403<p>The callback signature is:</p>
404
405<pre class="text">
406 MagickBooleanType GetImageViewMethod(const ImageView *source,
407 const ssize_t y,const int thread_id,void *context)
408</pre>
409
410<p>Use this pragma if the view is not single threaded:</p>
411
412<pre class="text">
413 #pragma omp critical
414</pre>
415
416<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
417
418<p>The format of the GetImageViewIterator method is:</p>
419
420<pre class="code">
421 MagickBooleanType GetImageViewIterator(ImageView *source,
422 GetImageViewMethod get,void *context)
423</pre>
424
425<p>A description of each parameter follows:</p>
426
427<h5>source</h5>
428<p>the source image view.</p>
429
430<h5>get</h5>
431<p>the get callback method.</p>
432
433<h5>context</h5>
434<p>the user defined context.</p>
435
436 </div>
437<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualIndexes">GetImageViewVirtualIndexes</a></h2>
438<div class="doc-section">
439
440<p>GetImageViewVirtualIndexes() returns the image view virtual indexes.</p>
441
442<p>The format of the GetImageViewVirtualIndexes method is:</p>
443
444<pre class="code">
445 const IndexPacket *GetImageViewVirtualIndexes(
446 const ImageView *image_view)
447</pre>
448
449<p>A description of each parameter follows:</p>
450
451<h5>image_view</h5>
452<p>the image view.</p>
453
454 </div>
455<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
456<div class="doc-section">
457
458<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
459
460<p>The format of the GetImageViewVirtualPixels method is:</p>
461
462<pre class="code">
463 const PixelPacket *GetImageViewVirtualPixels(const ImageView *image_view)
464</pre>
465
466<p>A description of each parameter follows:</p>
467
468<h5>image_view</h5>
469<p>the image view.</p>
470
471 </div>
472<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
473<div class="doc-section">
474
475<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
476
477<p>The format of the IsImageView method is:</p>
478
479<pre class="code">
480 MagickBooleanType IsImageView(const ImageView *image_view)
481</pre>
482
483<p>A description of each parameter follows:</p>
484
485<h5>image_view</h5>
486<p>the image view.</p>
487
488 </div>
489<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
490<div class="doc-section">
491
492<p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
493
494<p>The format of the NewImageView method is:</p>
495
496<pre class="code">
497 ImageView *NewImageView(MagickCore *wand)
498</pre>
499
500<p>A description of each parameter follows:</p>
501
502<h5>wand</h5>
503<p>the wand.</p>
504
505 </div>
506<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
507<div class="doc-section">
508
509<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
510
511<p>The format of the NewImageViewRegion method is:</p>
512
513<pre class="code">
514 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
515 const ssize_t y,const size_t width,const size_t height)
516</pre>
517
518<p>A description of each parameter follows:</p>
519
520<h5>wand</h5>
521<p>the magick wand.</p>
522
523<h5>x,y,columns,rows</h5>
524<p>These values define the perimeter of a extent of pixel_wands view.</p>
525
526 </div>
527<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
528<div class="doc-section">
529
530<p>SetImageViewDescription() associates a description with an image view.</p>
531
532<p>The format of the SetImageViewDescription method is:</p>
533
534<pre class="code">
535 void SetImageViewDescription(ImageView *image_view,
536 const char *description)
537</pre>
538
539<p>A description of each parameter follows:</p>
540
541<h5>image_view</h5>
542<p>the image view.</p>
543
544<h5>description</h5>
545<p>the image view description.</p>
546
547 </div>
548<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
549<div class="doc-section">
550
551<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>
552
553<p>The callback signature is:</p>
554
555<pre class="text">
556 MagickBooleanType SetImageViewMethod(ImageView *destination,
557 const ssize_t y,const int thread_id,void *context)
558</pre>
559
560<p>Use this pragma if the view is not single threaded:</p>
561
562<pre class="text">
563 #pragma omp critical
564</pre>
565
566<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
567
568<p>The format of the SetImageViewIterator method is:</p>
569
570<pre class="code">
571 MagickBooleanType SetImageViewIterator(ImageView *destination,
572 SetImageViewMethod set,void *context)
573</pre>
574
575<p>A description of each parameter follows:</p>
576
577<h5>destination</h5>
578<p>the image view.</p>
579
580<h5>set</h5>
581<p>the set callback method.</p>
582
583<h5>context</h5>
584<p>the user defined context.</p>
585
586 </div>
587<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
588<div class="doc-section">
589
590<p>SetImageViewThreads() sets the number of threads in a thread team.</p>
591
592<p>The format of the SetImageViewDescription method is:</p>
593
594<pre class="code">
595 void SetImageViewThreads(ImageView *image_view,
596 const size_t number_threads)
597</pre>
598
599<p>A description of each parameter follows:</p>
600
601<h5>image_view</h5>
602<p>the image view.</p>
603
604<h5>number_threads</h5>
605<p>the number of threads in a thread team.</p>
606
607 </div>
608<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
609<div class="doc-section">
610
611<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>
612
613<p>The callback signature is:</p>
614
615<pre class="text">
616 MagickBooleanType TransferImageViewMethod(const ImageView *source,
617 ImageView *destination,const ssize_t y,const int thread_id,
618 void *context)
619</pre>
620
621<p>Use this pragma if the view is not single threaded:</p>
622
623<pre class="text">
624 #pragma omp critical
625</pre>
626
627<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
628
629<p>The format of the TransferImageViewIterator method is:</p>
630
631<pre class="code">
632 MagickBooleanType TransferImageViewIterator(ImageView *source,
633 ImageView *destination,TransferImageViewMethod transfer,void *context)
634</pre>
635
636<p>A description of each parameter follows:</p>
637
638<h5>source</h5>
639<p>the source image view.</p>
640
641<h5>destination</h5>
642<p>the destination image view.</p>
643
644<h5>transfer</h5>
645<p>the transfer callback method.</p>
646
647<h5>context</h5>
648<p>the user defined context.</p>
649
650 </div>
651<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
652<div class="doc-section">
653
654<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>
655
656<p>The callback signature is:</p>
657
658<pre class="text">
659 MagickBooleanType UpdateImageViewMethod(ImageView *source,
660 const ssize_t y,const int thread_id,void *context)
661</pre>
662
663<p>Use this pragma if the view is not single threaded:</p>
664
665<pre class="text">
666 #pragma omp critical
667</pre>
668
669<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
670
671<p>The format of the UpdateImageViewIterator method is:</p>
672
673<pre class="code">
674 MagickBooleanType UpdateImageViewIterator(ImageView *source,
675 UpdateImageViewMethod update,void *context)
676</pre>
677
678<p>A description of each parameter follows:</p>
679
680<h5>source</h5>
681<p>the source image view.</p>
682
683<h5>update</h5>
684<p>the update callback method.</p>
685
686<h5>context</h5>
687<p>the user defined context.</p>
688
689 </div>
cristy06f63f22012-10-31 00:50:07 +0000690
691</div>
692
693<div id="linkbar">
694 <span id="linkbar-west">&nbsp;</span>
cristy8ee7f242013-06-20 16:08:44 +0000695
cristy06f63f22012-10-31 00:50:07 +0000696 <span id="linkbar-center">
cristy8ee7f242013-06-20 16:08:44 +0000697 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
698 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a> &bull;
699 <a href="http://jqmagick.imagemagick.org/">JqMagick</a>
cristy06f63f22012-10-31 00:50:07 +0000700 </span>
701 <span id="linkbar-east">&nbsp;</span>
702 </div>
703 <div class="footer">
cristy8ee7f242013-06-20 16:08:44 +0000704 <span id="footer-west">&copy; 1999-2013 ImageMagick Studio LLC</span>
cristyd8833bf2013-02-24 22:14:53 +0000705 <span id="footer-east"> <a href="../../www/contact.html">Contact the Wizards</a></span>
cristy06f63f22012-10-31 00:50:07 +0000706 </div>
707 <div style="clear: both; margin: 0; width: 100%; "></div>
cristy06f63f22012-10-31 00:50:07 +0000708</body>
709</html>