blob: 50b9369c105a7c92fbbad1c5152ce34d9744c08b [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">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">
cristy3eaa0ef2010-03-06 20:35:26 +00004<head>
cristy3c98a4f2010-08-13 20:09:41 +00005 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +00007 <title>ImageMagick: MagickCore, C API for ImageMagick: Get or Set Image Pixels</title>
cristy3ed852e2009-09-05 21:47:34 +00008 <meta http-equiv="Content-Language" content="en-US"/>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000011 <meta name="Application-name" content="ImageMagick"/>
cristydcca3fa2010-12-29 21:50:07 +000012 <meta name="Description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images in a variety of formats. Use ImageMagick to scale, rotate, shear, distort and transform images."/>
cristy3c98a4f2010-08-13 20:09:41 +000013 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy3ed852e2009-09-05 21:47:34 +000014 <meta name="Generator" content="PHP"/>
15 <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, get, or, set, image, pixels, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
cristy3ed852e2009-09-05 21:47:34 +000016 <meta name="Rating" content="GENERAL"/>
17 <meta name="Robots" content="INDEX, FOLLOW"/>
18 <meta name="Generator" content="ImageMagick Studio LLC"/>
19 <meta name="Author" content="ImageMagick Studio LLC"/>
20 <meta name="Revisit-after" content="2 DAYS"/>
21 <meta name="Resource-type" content="document"/>
cristy4103d562010-12-10 01:38:54 +000022 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy3ed852e2009-09-05 21:47:34 +000023 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000024 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000025 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
26 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
27 <style type="text/css" media="all">
28 @import url("../../www/magick.css");
29 </style>
cristydcca3fa2010-12-29 21:50:07 +000030 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
31 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
32 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
33 <script type="text/javascript">
34 $(document).ready(function() {
35 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
36 'transitionIn' : 'elastic',
37 'transitionOut' : 'elastic',
38 'overlayShow' : false,
39 'opacity' : true
40 });
41 });
42 </script>
cristy3eaa0ef2010-03-06 20:35:26 +000043</head>
44
45<body id="www-imagemagick-org">
46<div class="titlebar">
47<a href="../../index.html">
48 <img src="../../images/script.png" alt="[ImageMagick]"
49 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
50<a href="http://www.networkredux.com">
51 <img src="../../images/networkredux.png" alt="[sponsor]"
52 style="margin: 45px auto; border: 0px; float: left;" /></a>
53<a href="http://www.imagemagick.org/discourse-server/">
54 <img src="../../images/logo.jpg" alt=""
55 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
56<a href="../../index.html">
57 <img src="../../images/sprite.jpg" alt=""
58 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
59</div>
60
cristyce69bb02010-07-27 19:49:46 +000061<div class="westbar">
cristy3eaa0ef2010-03-06 20:35:26 +000062
cristy3ed852e2009-09-05 21:47:34 +000063<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000064 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000065</div>
cristy3eaa0ef2010-03-06 20:35:26 +000066<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000067<div class="menu">
cristybb503372010-05-27 20:51:26 +000068 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
69</div>
70<div class="sub">
71 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
72</div>
73<div class="sub">
74 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
75</div>
76<div class="sub">
77 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
78</div>
79<div class="sep"></div>
80<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000081 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +000082</div>
83<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000084 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +000085</div>
86<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000087 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +000088</div>
89<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000090 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +000091</div>
92<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000093 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +000094</div>
95<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000096 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +000097</div>
98<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000099 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +0000100</div>
101<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000102 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +0000103</div>
104<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000105 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +0000106</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000107<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000108<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000109 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +0000110</div>
111<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000112 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000113</div>
114<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000115 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000116 </div>
117<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000118 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000119</div>
cristybb503372010-05-27 20:51:26 +0000120<div class="menu">
121 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
122</div>
cristy3ed852e2009-09-05 21:47:34 +0000123<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000124 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000125</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000126<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000127<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000128 <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
cristy3ed852e2009-09-05 21:47:34 +0000129</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000130<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000131<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000132 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000133</div>
134<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000135 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000136</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000137<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000138<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000139 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000140
141<div class="sponsbox">
142<div class="sponsor">
cristydcca3fa2010-12-29 21:50:07 +0000143 <a title="Sponsor: Notebook Reparatur Berlin" href="http://www.notebook-reparaturen-berlin.de">Notebook Reparatur Berlin</a><!-- 2011040100025 gabi.schulze-->
cristy7d52cd62010-10-01 17:26:59 +0000144</div>
145<div class="sponsor">
146 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
cristy73fd1cd2010-09-12 19:14:25 +0000147</div>
148<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000149 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
150</div>
151<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000152 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
153</div>
cristy3ed852e2009-09-05 21:47:34 +0000154</div>
155</div>
cristyce69bb02010-07-27 19:49:46 +0000156</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000157
cristyce69bb02010-07-27 19:49:46 +0000158<div class="eastbar">
159 <script type="text/javascript">
160 <!--
161 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000162 google_ad_slot = "0574824969";
163 google_ad_width = 160;
164 google_ad_height = 600;
165 //-->
166 </script>
167 <script type="text/javascript"
168 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
169 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000170</div>
171
172<div class="main">
173
cristy307ba182010-12-25 01:00:34 +0000174<h1>Module cache
175 Methods</h1>
cristy3ed852e2009-09-05 21:47:34 +0000176<p class="navigation-index">[<a href="#AcquirePixelCacheNexus">AcquirePixelCacheNexus</a> &bull; <a href="#GetAuthenticIndexQueue">GetAuthenticIndexQueue</a> &bull; <a href="#GetAuthenticPixelQueue">GetAuthenticPixelQueue</a> &bull; <a href="#GetAuthenticPixels">GetAuthenticPixels</a> &bull; <a href="#GetOneAuthenticPixel">GetOneAuthenticPixel</a> &bull; <a href="#GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a> &bull; <a href="#GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a> &bull; <a href="#GetOneVirtualPixel">GetOneVirtualPixel</a> &bull; <a href="#GetVirtualIndexQueue">GetVirtualIndexQueue</a> &bull; <a href="#VirtualPixelModulo">VirtualPixelModulo</a> &bull; <a href="#GetVirtualPixelQueue">GetVirtualPixelQueue</a> &bull; <a href="#GetVirtualPixels">GetVirtualPixels</a> &bull; <a href="#QueueAuthenticPixels">QueueAuthenticPixels</a> &bull; <a href="#SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a> &bull; <a href="#SyncAuthenticPixels">SyncAuthenticPixels</a>]</p>
177
178<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
179_8c.html" target="source" name="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
180<div class="doc-section">
181
182<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p></ol>
183
184<p>The format of the AcquirePixelCacheNexus method is:</p>
185
186<pre class="code">
cristybb503372010-05-27 20:51:26 +0000187 NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
cristy3ed852e2009-09-05 21:47:34 +0000188</pre>
189
190<p>A description of each parameter follows:</p></ol>
191
192<h5>number_threads</h5>
193<ol><p>the number of nexus threads.</p></ol>
194
195 </div>
196<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
197_8c.html" target="source" name="GetAuthenticIndexQueue">GetAuthenticIndexQueue</a></h2>
198<div class="doc-section">
199
200<p>GetAuthenticIndexQueue() returns the authentic black channel or the colormap indexes associated with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the black channel or colormap indexes are not available.</p></ol>
201
202<p>The format of the GetAuthenticIndexQueue() method is:</p>
203
204<pre class="code">
205 IndexPacket *GetAuthenticIndexQueue(const Image *image)
206</pre>
207
208<p>A description of each parameter follows:</p></ol>
209
210<h5>image</h5>
211<ol><p>the image.</p></ol>
212
213 </div>
214<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
215_8c.html" target="source" name="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
216<div class="doc-section">
217
218<p>GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p></ol>
219
220<p>The format of the GetAuthenticPixelQueue() method is:</p>
221
222<pre class="code">
223 PixelPacket *GetAuthenticPixelQueue(const Image image)
224</pre>
225
226<p>A description of each parameter follows:</p></ol>
227
228<h5>image</h5>
229<ol><p>the image.</p></ol>
230
231 </div>
232<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
233_8c.html" target="source" name="GetAuthenticPixels">GetAuthenticPixels</a></h2>
234<div class="doc-section">
235
236<p>GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a PixelPacket array representing the region is returned, otherwise NULL is returned.</p></ol>
237
cristy16ff93c2010-01-13 23:18:07 +0000238<p>The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000239
240<p>Pixels accessed via the returned pointer represent a simple array of type PixelPacket. If the image type is CMYK or if the storage class is PseduoClass, call GetAuthenticIndexQueue() after invoking GetAuthenticPixels() to obtain the black color component or colormap indexes (of type IndexPacket) corresponding to the region. Once the PixelPacket (and/or IndexPacket) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p></ol>
241
242<p>The format of the GetAuthenticPixels() method is:</p>
243
244<pre class="code">
cristyeaedf062010-05-29 22:36:02 +0000245 PixelPacket *GetAuthenticPixels(Image *image,const ssize_t x,
246 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000247 ExceptionInfo *exception)
248</pre>
249
250<p>A description of each parameter follows:</p></ol>
251
252<h5>image</h5>
253<ol><p>the image.</p></ol>
254
255<h5>x,y,columns,rows</h5>
256<ol><p>These values define the perimeter of a region of pixels.</p></ol>
257
258<h5>exception</h5>
259<ol><p>return any errors or warnings in this structure.</p></ol>
260
261 </div>
262<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
263_8c.html" target="source" name="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
264<div class="doc-section">
265
266<p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.</p></ol>
267
268<p>The format of the GetOneAuthenticPixel() method is:</p>
269
270<pre class="code">
cristybb503372010-05-27 20:51:26 +0000271 MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
272 const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
cristy3ed852e2009-09-05 21:47:34 +0000273</pre>
274
275<p>A description of each parameter follows:</p></ol>
276
277<h5>image</h5>
278<ol><p>the image.</p></ol>
279
280<h5>x,y</h5>
281<ol><p>These values define the location of the pixel to return.</p></ol>
282
283<h5>pixel</h5>
284<ol><p>return a pixel at the specified (x,y) location.</p></ol>
285
286<h5>exception</h5>
287<ol><p>return any errors or warnings in this structure.</p></ol>
288
289 </div>
290<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
291_8c.html" target="source" name="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
292<div class="doc-section">
293
294<p>GetOneVirtualMagickPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p></ol>
295
296<p>The format of the GetOneVirtualMagickPixel() method is:</p>
297
298<pre class="code">
299 MagickBooleanType GetOneVirtualMagickPixel(const Image image,
cristybb503372010-05-27 20:51:26 +0000300 const ssize_t x,const ssize_t y,MagickPixelPacket *pixel,
cristy3ed852e2009-09-05 21:47:34 +0000301 ExceptionInfo exception)
302</pre>
303
304<p>A description of each parameter follows:</p></ol>
305
306<h5>image</h5>
307<ol><p>the image.</p></ol>
308
309<h5>x,y</h5>
310<ol><p>these values define the location of the pixel to return.</p></ol>
311
312<h5>pixel</h5>
313<ol><p>return a pixel at the specified (x,y) location.</p></ol>
314
315<h5>exception</h5>
316<ol><p>return any errors or warnings in this structure.</p></ol>
317
318 </div>
319<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
320_8c.html" target="source" name="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
321<div class="doc-section">
322
323<p>GetOneVirtualMethodPixel() returns a single pixel at the specified (x,y) location as defined by specified pixel method. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p></ol>
324
325<p>The format of the GetOneVirtualMethodPixel() method is:</p>
326
327<pre class="code">
328 MagickBooleanType GetOneVirtualMethodPixel(const Image image,
cristybb503372010-05-27 20:51:26 +0000329 const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
330 const ssize_t y,Pixelpacket *pixel,ExceptionInfo exception)
cristy3ed852e2009-09-05 21:47:34 +0000331</pre>
332
333<p>A description of each parameter follows:</p></ol>
334
335<h5>image</h5>
336<ol><p>the image.</p></ol>
337
338<h5>virtual_pixel_method</h5>
339<ol><p>the virtual pixel method.</p></ol>
340
341<h5>x,y</h5>
342<ol><p>These values define the location of the pixel to return.</p></ol>
343
344<h5>pixel</h5>
345<ol><p>return a pixel at the specified (x,y) location.</p></ol>
346
347<h5>exception</h5>
348<ol><p>return any errors or warnings in this structure.</p></ol>
349
350 </div>
351<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
352_8c.html" target="source" name="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
353<div class="doc-section">
354
355<p>GetOneVirtualPixel() returns a single virtual pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p></ol>
356
357<p>The format of the GetOneVirtualPixel() method is:</p>
358
359<pre class="code">
cristybb503372010-05-27 20:51:26 +0000360 MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
361 const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
cristy3ed852e2009-09-05 21:47:34 +0000362</pre>
363
364<p>A description of each parameter follows:</p></ol>
365
366<h5>image</h5>
367<ol><p>the image.</p></ol>
368
369<h5>x,y</h5>
370<ol><p>These values define the location of the pixel to return.</p></ol>
371
372<h5>pixel</h5>
373<ol><p>return a pixel at the specified (x,y) location.</p></ol>
374
375<h5>exception</h5>
376<ol><p>return any errors or warnings in this structure.</p></ol>
377
378 </div>
379<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
380_8c.html" target="source" name="GetVirtualIndexQueue">GetVirtualIndexQueue</a></h2>
381<div class="doc-section">
382
383<p>GetVirtualIndexQueue() returns the virtual black channel or the colormap indexes associated with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the black channel or colormap indexes are not available.</p></ol>
384
385<p>The format of the GetVirtualIndexQueue() method is:</p>
386
387<pre class="code">
388 const IndexPacket *GetVirtualIndexQueue(const Image *image)
389</pre>
390
391<p>A description of each parameter follows:</p></ol>
392
393<h5>image</h5>
394<ol><p>the image.</p></ol>
395
396 </div>
397<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
398_8c.html" target="source" name="VirtualPixelModulo">VirtualPixelModulo</a></h2>
399<div class="doc-section">
400
401<p>VirtualPixelModulo() computes the remainder of dividing offset by extent. It returns not only the quotient (tile the offset falls in) but also the positive remainer within that tile such that 0 <= remainder < extent. This method is essentially a ldiv() using a floored modulo division rather than the normal default truncated modulo division. </p>
402 </div>
403<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
404_8c.html" target="source" name="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
405<div class="doc-section">
406
407<p>GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p></ol>
408
409<p>The format of the GetVirtualPixelQueue() method is:</p>
410
411<pre class="code">
412 const PixelPacket *GetVirtualPixelQueue(const Image image)
413</pre>
414
415<p>A description of each parameter follows:</p></ol>
416
417<h5>image</h5>
418<ol><p>the image.</p></ol>
419
420 </div>
421<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
422_8c.html" target="source" name="GetVirtualPixels">GetVirtualPixels</a></h2>
423<div class="doc-section">
424
cristy16ff93c2010-01-13 23:18:07 +0000425<p>GetVirtualPixels() returns an immutable pixel region. If the region is successfully accessed, a pointer to it is returned, otherwise NULL is returned. The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000426
427<p>Pixels accessed via the returned pointer represent a simple array of type PixelPacket. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticIndexQueue() after invoking GetAuthenticPixels() to access the black color component or to obtain the colormap indexes (of type IndexPacket) corresponding to the region.</p></ol>
428
429<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p></ol>
430
431<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe. In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p></ol>
432
433<p>The format of the GetVirtualPixels() method is:</p>
434
435<pre class="code">
cristybb503372010-05-27 20:51:26 +0000436 const PixelPacket *GetVirtualPixels(const Image *image,const ssize_t x,
437 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000438 ExceptionInfo *exception)
439</pre>
440
441<p>A description of each parameter follows:</p></ol>
442
443<h5>image</h5>
444<ol><p>the image.</p></ol>
445
446<h5>x,y,columns,rows</h5>
447<ol><p>These values define the perimeter of a region of pixels.</p></ol>
448
449<h5>exception</h5>
450<ol><p>return any errors or warnings in this structure.</p></ol>
451
452 </div>
453<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
454_8c.html" target="source" name="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
455<div class="doc-section">
456
457<p>QueueAuthenticPixels() queues a mutable pixel region. If the region is successfully intialized a pointer to a PixelPacket array representing the region is returned, otherwise NULL is returned. The returned pointer may point to a temporary working buffer for the pixels or it may point to the final location of the pixels in memory.</p></ol>
458
459<p>Write-only access means that any existing pixel values corresponding to the region are ignored. This is useful if the initial image is being created from scratch, or if the existing pixel values are to be completely replaced without need to refer to their pre-existing values. The application is free to read and write the pixel buffer returned by QueueAuthenticPixels() any way it pleases. QueueAuthenticPixels() does not initialize the pixel array values. Initializing pixel array values is the application's responsibility.</p></ol>
460
cristy16ff93c2010-01-13 23:18:07 +0000461<p>Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000462
463<p>Pixels accessed via the returned pointer represent a simple array of type PixelPacket. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticIndexQueue() after invoking GetAuthenticPixels() to obtain the black color component or the colormap indexes (of type IndexPacket) corresponding to the region. Once the PixelPacket (and/or IndexPacket) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p></ol>
464
465<p>The format of the QueueAuthenticPixels() method is:</p>
466
467<pre class="code">
cristyeaedf062010-05-29 22:36:02 +0000468 PixelPacket *QueueAuthenticPixels(Image *image,const ssize_t x,
469 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000470 ExceptionInfo *exception)
471</pre>
472
473<p>A description of each parameter follows:</p></ol>
474
475<h5>image</h5>
476<ol><p>the image.</p></ol>
477
478<h5>x,y,columns,rows</h5>
479<ol><p>These values define the perimeter of a region of pixels.</p></ol>
480
481<h5>exception</h5>
482<ol><p>return any errors or warnings in this structure.</p></ol>
483
484 </div>
485<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
486_8c.html" target="source" name="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
487<div class="doc-section">
488
489<p>SetPixelCacheVirtualMethod() sets the "virtual pixels" method for the pixel cache and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.</p></ol>
490
491<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
492
493<pre class="code">
494 VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
495 const VirtualPixelMethod virtual_pixel_method)
496</pre>
497
498<p>A description of each parameter follows:</p></ol>
499
500<h5>image</h5>
501<ol><p>the image.</p></ol>
502
503<h5>virtual_pixel_method</h5>
504<ol><p>choose the type of virtual pixel.</p></ol>
505
506 </div>
507<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
508_8c.html" target="source" name="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
509<div class="doc-section">
510
511<p>SyncAuthenticPixels() saves the image pixels to the in-memory or disk cache. The method returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.</p></ol>
512
513<p>The format of the SyncAuthenticPixels() method is:</p>
514
515<pre class="code">
516 MagickBooleanType SyncAuthenticPixels(Image *image,
517 ExceptionInfo *exception)
518</pre>
519
520<p>A description of each parameter follows:</p></ol>
521
522<h5>image</h5>
523<ol><p>the image.</p></ol>
524
525<h5>exception</h5>
526<ol><p>return any errors or warnings in this structure.</p></ol>
527
528 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000529
530</div>
531
532<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000533 <span id="linkbar-west">&nbsp;</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000534 <span id="linkbar-center">
535 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000536 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000537 </span>
538 <span id="linkbar-east">&nbsp;</span>
539 </div>
540 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000541 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000542 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
543 </div>
544 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000545 <script type="text/javascript">
546 var _gaq = _gaq || [];
547 _gaq.push(['_setAccount', 'UA-17690367-1']);
548 _gaq.push(['_trackPageview']);
549
550 (function() {
551 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
552 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
553 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
554 })();
555 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000556</body>
557</html>