blob: 5024ee11336d2bae9c1d1f1597c5c1d1cb2549e9 [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"/>
cristy1efc1ab2011-08-01 14:47:02 +000010 <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>
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" />
cristy1efc1ab2011-08-01 14:47:02 +000033 <link rel="stylesheet" type="text/css" href="http://www.imagemagick.org/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>
cristy1efc1ab2011-08-01 14:47:02 +000038 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
39 <script type="text/javascript" src="http://www.imagemagick.org/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">
cristy1efc1ab2011-08-01 14:47:02 +0000167 <a rel="follow" title="Sponsor: Autos part" href="http://www.pkwteile.de/autoteile">Autos part</a><!-- 201112010090s jr@pkwte... -->
168</div>
169<div class="sponsor">
cristy84134182011-06-15 22:59:00 +0000170 <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
171</div>
172<div class="sponsor">
cristy81492d62011-06-07 16:41:42 +0000173 <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
174</div>
175<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000176 <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
177</div>
178<div class="sponsor">
179 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
180</div>
181<div class="sponsor">
cristy4bf6e232011-05-21 01:43:33 +0000182 <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 +0000183</div>
184<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000185 <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
cristy4c54bbb2011-03-17 13:53:13 +0000186</div>
187<div class="sponsor">
cristy575d5ee2011-05-24 01:59:01 +0000188 <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
cristy4bf6e232011-05-21 01:43:33 +0000189</div>
190<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000191 <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 +0000192</div>
193<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000194 <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
cristy73fd1cd2010-09-12 19:14:25 +0000195</div>
196<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000197 <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
cristyee742642011-02-26 02:49:59 +0000198</div>
199<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">
cristy1efc1ab2011-08-01 14:47:02 +0000203 <a rel="follow" title="Sponsor: Günstige Turbolader" href="http://www.autoteile-carparts.de/">Günstige Turbolader</a><!-- 20111101000030 -->
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 class="g-plusone" data-size="standard" data-count="false"></div>
211</div>
cristy10c87152010-06-26 16:12:21 +0000212
213<div class="main">
214
cristy350dea42011-02-15 17:31:04 +0000215<h1>Module image-view Methods</h1>
cristya4dfb122011-07-07 19:01:57 +0000216<p class="navigation-index">[<a href="#CloneImageView">CloneImageView</a> &bull; <a href="#DestroyImageView">DestroyImageView</a> &bull; <a href="#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> &bull; <a href="#GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</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="#GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</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 +0000217
cristy350dea42011-02-15 17:31:04 +0000218<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000219<div class="doc-section">
220
221<p>CloneImageView() makes a copy of the specified image view.</p>
222
223<p>The format of the CloneImageView method is:</p>
224
225<pre class="code">
226 ImageView *CloneImageView(const ImageView *image_view)
227</pre>
228
229<p>A description of each parameter follows:</p>
230
231<h5>image_view</h5>
232<p>the image view.</p>
233
234 </div>
cristy350dea42011-02-15 17:31:04 +0000235<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000236<div class="doc-section">
237
238<p>DestroyImageView() deallocates memory associated with a image view.</p>
239
240<p>The format of the DestroyImageView method is:</p>
241
242<pre class="code">
243 ImageView *DestroyImageView(ImageView *image_view)
244</pre>
245
246<p>A description of each parameter follows:</p>
247
248<h5>image_view</h5>
249<p>the image view.</p>
250
251 </div>
cristy350dea42011-02-15 17:31:04 +0000252<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000253<div class="doc-section">
254
255<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>
256
257<p>The callback signature is:</p>
258
259<pre class="text">
260 MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
261 const ImageView *duplex,ImageView *destination,const ssize_t y,
262 const int thread_id,void *context)
263</pre>
264
265<p>Use this pragma if the view is not single threaded:</p>
266
267<pre class="text">
268 #pragma omp critical
269</pre>
270
271<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
272
273<p>The format of the DuplexTransferImageViewIterator method is:</p>
274
275<pre class="code">
276 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
277 ImageView *duplex,ImageView *destination,
278 DuplexTransferImageViewMethod transfer,void *context)
279</pre>
280
281<p>A description of each parameter follows:</p>
282
283<h5>source</h5>
284<p>the source image view.</p>
285
286<h5>duplex</h5>
287<p>the duplex image view.</p>
288
289<h5>destination</h5>
290<p>the destination image view.</p>
291
292<h5>transfer</h5>
293<p>the transfer callback method.</p>
294
295<h5>context</h5>
296<p>the user defined context.</p>
297
298 </div>
cristya4dfb122011-07-07 19:01:57 +0000299<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000300<div class="doc-section">
301
cristya4dfb122011-07-07 19:01:57 +0000302<p>GetImageViewAuthenticMetacontent() returns the image view authentic meta-content.</p>
cristy6f77f692011-02-15 15:31:39 +0000303
304<p>The format of the GetImageViewAuthenticPixels method is:</p>
305
306<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000307 void *GetImageViewAuthenticMetacontent(
308 const ImageView *image_view)
cristy6f77f692011-02-15 15:31:39 +0000309</pre>
310
311<p>A description of each parameter follows:</p>
312
313<h5>image_view</h5>
314<p>the image view.</p>
315
316 </div>
cristy350dea42011-02-15 17:31:04 +0000317<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000318<div class="doc-section">
319
320<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p>
321
322<p>The format of the GetImageViewAuthenticPixels method is:</p>
323
324<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000325 Quantum *GetImageViewAuthenticPixels(const ImageView *image_view)
cristy6f77f692011-02-15 15:31:39 +0000326</pre>
327
328<p>A description of each parameter follows:</p>
329
330<h5>image_view</h5>
331<p>the image view.</p>
332
333 </div>
cristy350dea42011-02-15 17:31:04 +0000334<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000335<div class="doc-section">
336
337<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p>
338
339<p>The format of the GetImageViewException method is:</p>
340
341<pre class="code">
342 char *GetImageViewException(const PixelImage *image_view,
343 ExceptionType *severity)
344</pre>
345
346<p>A description of each parameter follows:</p>
347
348<h5>image_view</h5>
349<p>the pixel image_view.</p>
350
351<h5>severity</h5>
352<p>the severity of the error is returned here.</p>
353
354 </div>
cristy350dea42011-02-15 17:31:04 +0000355<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000356<div class="doc-section">
357
358<p>GetImageViewExtent() returns the image view extent.</p>
359
360<p>The format of the GetImageViewExtent method is:</p>
361
362<pre class="code">
363 RectangleInfo GetImageViewExtent(const ImageView *image_view)
364</pre>
365
366<p>A description of each parameter follows:</p>
367
368<h5>image_view</h5>
369<p>the image view.</p>
370
371 </div>
cristy350dea42011-02-15 17:31:04 +0000372<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000373<div class="doc-section">
374
375<p>GetImageViewImage() returns the image associated with the image view.</p>
376
377<p>The format of the GetImageViewImage method is:</p>
378
379<pre class="code">
380 MagickCore *GetImageViewImage(const ImageView *image_view)
381</pre>
382
383<p>A description of each parameter follows:</p>
384
385<h5>image_view</h5>
386<p>the image view.</p>
387
388 </div>
cristy350dea42011-02-15 17:31:04 +0000389<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000390<div class="doc-section">
391
392<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>
393
394<p>The callback signature is:</p>
395
396<pre class="text">
397 MagickBooleanType GetImageViewMethod(const ImageView *source,
398 const ssize_t y,const int thread_id,void *context)
399</pre>
400
401<p>Use this pragma if the view is not single threaded:</p>
402
403<pre class="text">
404 #pragma omp critical
405</pre>
406
407<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p>
408
409<p>The format of the GetImageViewIterator method is:</p>
410
411<pre class="code">
412 MagickBooleanType GetImageViewIterator(ImageView *source,
413 GetImageViewMethod get,void *context)
414</pre>
415
416<p>A description of each parameter follows:</p>
417
418<h5>source</h5>
419<p>the source image view.</p>
420
421<h5>get</h5>
422<p>the get callback method.</p>
423
424<h5>context</h5>
425<p>the user defined context.</p>
426
427 </div>
cristya4dfb122011-07-07 19:01:57 +0000428<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000429<div class="doc-section">
430
cristya4dfb122011-07-07 19:01:57 +0000431<p>GetImageViewVirtualMetacontent() returns the image view virtual meta-content.</p>
cristy6f77f692011-02-15 15:31:39 +0000432
cristya4dfb122011-07-07 19:01:57 +0000433<p>The format of the GetImageViewVirtualMetacontent method is:</p>
cristy6f77f692011-02-15 15:31:39 +0000434
435<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000436 const void *GetImageViewVirtualMetacontent(
cristy6f77f692011-02-15 15:31:39 +0000437 const ImageView *image_view)
438</pre>
439
440<p>A description of each parameter follows:</p>
441
442<h5>image_view</h5>
443<p>the image view.</p>
444
445 </div>
cristy350dea42011-02-15 17:31:04 +0000446<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000447<div class="doc-section">
448
449<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p>
450
451<p>The format of the GetImageViewVirtualPixels method is:</p>
452
453<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000454 const Quantum *GetImageViewVirtualPixels(const ImageView *image_view)
cristy6f77f692011-02-15 15:31:39 +0000455</pre>
456
457<p>A description of each parameter follows:</p>
458
459<h5>image_view</h5>
460<p>the image view.</p>
461
462 </div>
cristy350dea42011-02-15 17:31:04 +0000463<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000464<div class="doc-section">
465
466<p>IsImageView() returns MagickTrue if the the parameter is verified as a image view object.</p>
467
468<p>The format of the IsImageView method is:</p>
469
470<pre class="code">
471 MagickBooleanType IsImageView(const ImageView *image_view)
472</pre>
473
474<p>A description of each parameter follows:</p>
475
476<h5>image_view</h5>
477<p>the image view.</p>
478
479 </div>
cristy350dea42011-02-15 17:31:04 +0000480<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000481<div class="doc-section">
482
483<p>NewImageView() returns a image view required for all other methods in the Image View API.</p>
484
485<p>The format of the NewImageView method is:</p>
486
487<pre class="code">
488 ImageView *NewImageView(MagickCore *wand)
489</pre>
490
491<p>A description of each parameter follows:</p>
492
493<h5>wand</h5>
494<p>the wand.</p>
495
496 </div>
cristy350dea42011-02-15 17:31:04 +0000497<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000498<div class="doc-section">
499
500<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p>
501
502<p>The format of the NewImageViewRegion method is:</p>
503
504<pre class="code">
505 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
506 const ssize_t y,const size_t width,const size_t height)
507</pre>
508
509<p>A description of each parameter follows:</p>
510
511<h5>wand</h5>
512<p>the magick wand.</p>
513
514<h5>x,y,columns,rows</h5>
515<p>These values define the perimeter of a extent of pixel_wands view.</p>
516
517 </div>
cristy350dea42011-02-15 17:31:04 +0000518<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000519<div class="doc-section">
520
521<p>SetImageViewDescription() associates a description with an image view.</p>
522
523<p>The format of the SetImageViewDescription method is:</p>
524
525<pre class="code">
526 void SetImageViewDescription(ImageView *image_view,
527 const char *description)
528</pre>
529
530<p>A description of each parameter follows:</p>
531
532<h5>image_view</h5>
533<p>the image view.</p>
534
535<h5>description</h5>
536<p>the image view description.</p>
537
538 </div>
cristy350dea42011-02-15 17:31:04 +0000539<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000540<div class="doc-section">
541
542<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>
543
544<p>The callback signature is:</p>
545
546<pre class="text">
547 MagickBooleanType SetImageViewMethod(ImageView *destination,
548 const ssize_t y,const int thread_id,void *context)
549</pre>
550
551<p>Use this pragma if the view is not single threaded:</p>
552
553<pre class="text">
554 #pragma omp critical
555</pre>
556
557<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p>
558
559<p>The format of the SetImageViewIterator method is:</p>
560
561<pre class="code">
562 MagickBooleanType SetImageViewIterator(ImageView *destination,
563 SetImageViewMethod set,void *context)
564</pre>
565
566<p>A description of each parameter follows:</p>
567
568<h5>destination</h5>
569<p>the image view.</p>
570
571<h5>set</h5>
572<p>the set callback method.</p>
573
574<h5>context</h5>
575<p>the user defined context.</p>
576
577 </div>
cristy350dea42011-02-15 17:31:04 +0000578<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="SetImageViewThreads">SetImageViewThreads</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000579<div class="doc-section">
580
581<p>SetImageViewThreads() sets the number of threads in a thread team.</p>
582
583<p>The format of the SetImageViewDescription method is:</p>
584
585<pre class="code">
586 void SetImageViewThreads(ImageView *image_view,
587 const size_t number_threads)
588</pre>
589
590<p>A description of each parameter follows:</p>
591
592<h5>image_view</h5>
593<p>the image view.</p>
594
595<h5>number_threads</h5>
596<p>the number of threads in a thread team.</p>
597
598 </div>
cristy350dea42011-02-15 17:31:04 +0000599<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000600<div class="doc-section">
601
602<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>
603
604<p>The callback signature is:</p>
605
606<pre class="text">
607 MagickBooleanType TransferImageViewMethod(const ImageView *source,
608 ImageView *destination,const ssize_t y,const int thread_id,
609 void *context)
610</pre>
611
612<p>Use this pragma if the view is not single threaded:</p>
613
614<pre class="text">
615 #pragma omp critical
616</pre>
617
618<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p>
619
620<p>The format of the TransferImageViewIterator method is:</p>
621
622<pre class="code">
623 MagickBooleanType TransferImageViewIterator(ImageView *source,
624 ImageView *destination,TransferImageViewMethod transfer,void *context)
625</pre>
626
627<p>A description of each parameter follows:</p>
628
629<h5>source</h5>
630<p>the source image view.</p>
631
632<h5>destination</h5>
633<p>the destination image view.</p>
634
635<h5>transfer</h5>
636<p>the transfer callback method.</p>
637
638<h5>context</h5>
639<p>the user defined context.</p>
640
641 </div>
cristy350dea42011-02-15 17:31:04 +0000642<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000643<div class="doc-section">
644
645<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>
646
647<p>The callback signature is:</p>
648
649<pre class="text">
650 MagickBooleanType UpdateImageViewMethod(ImageView *source,
651 const ssize_t y,const int thread_id,void *context)
652</pre>
653
654<p>Use this pragma if the view is not single threaded:</p>
655
656<pre class="text">
657 #pragma omp critical
658</pre>
659
660<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p>
661
662<p>The format of the UpdateImageViewIterator method is:</p>
663
664<pre class="code">
665 MagickBooleanType UpdateImageViewIterator(ImageView *source,
666 UpdateImageViewMethod update,void *context)
667</pre>
668
669<p>A description of each parameter follows:</p>
670
671<h5>source</h5>
672<p>the source image view.</p>
673
674<h5>update</h5>
675<p>the update callback method.</p>
676
677<h5>context</h5>
678<p>the user defined context.</p>
679
680 </div>
cristy10c87152010-06-26 16:12:21 +0000681
682</div>
683
684<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000685 <span id="linkbar-west">&nbsp;</span>
cristy10c87152010-06-26 16:12:21 +0000686 <span id="linkbar-center">
687 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000688 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy10c87152010-06-26 16:12:21 +0000689 </span>
690 <span id="linkbar-east">&nbsp;</span>
691 </div>
692 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000693 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy10c87152010-06-26 16:12:21 +0000694 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
695 </div>
696 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000697 <script type="text/javascript">
698 var _gaq = _gaq || [];
699 _gaq.push(['_setAccount', 'UA-17690367-1']);
700 _gaq.push(['_trackPageview']);
701
702 (function() {
703 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
704 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
705 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
706 })();
707 </script>
cristy10c87152010-06-26 16:12:21 +0000708</body>
709</html>