]> granicus.if.org Git - imagemagick/blob - www/api/cache.html
(no commit message)
[imagemagick] / www / api / cache.html
1 <!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"/>
10   <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>
11   <title>ImageMagick: MagickCore, C API for ImageMagick: Get or Set Image Pixels</title>
12   <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"/>
16   <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."/>
17   <meta name="application-url" content="http://www.imagemagick.org"/>
18   <meta name="generator" content="PHP"/>
19   <meta name="keywords" content="magickcore, c, api, for, imagemagick:, get, or, set, image, pixels, ImageMagick, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"/>
20   <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"/>
26   <meta name="copyright" content="Copyright (c) 1999-2013 ImageMagick Studio LLC"/>
27   <meta name="distribution" content="Global"/>
28   <link rel="icon" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/wand.png"/>
29   <link rel="shortcut icon" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/wand.ico"  type="images/x-icon"/>
30   <link rel="canonical" href="http://www.imagemagick.org" />
31   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
32   <!-- Add jQuery library -->
33   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
34   
35   <!-- Optionaly include easing and/or mousewheel plugins -->
36   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.easing-1.3.pack.js"></script>
37   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.mousewheel-3.0.6.pack.js"></script>
38   
39   <!-- Add fancyBox -->
40   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/jquery.fancybox.css?v=2.0.4" type="text/css" media="screen" />
41   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.fancybox.pack.js?v=2.0.4"></script>
42   
43   <!-- Optionaly include button and/or thumbnail helpers -->
44   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.css?v=2.0.4" type="text/css" media="screen" />
45   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.js?v=2.0.4"></script>
46   
47   <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.css?v=2.0.4" type="text/css" media="screen" />
48   <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.js?v=2.0.4"></script>
49   <script type="text/javascript">
50         $(document).ready(function() {
51                 $(".fancybox").fancybox();
52         });
53   </script>
54   <!-- ImageMagick style -->
55   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
56   <style type="text/css" media="all">
57     @import url("../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick.css");
58   </style>
59 </head>
60
61 <body id="www-imagemagick-org">
62 <div class="titlebar">
63 <div style="margin: 17px auto; float: left;">
64   <script type="text/javascript">
65   <!--
66     google_ad_client = "pub-3129977114552745";
67     google_ad_slot = "5439289906";
68     google_ad_width = 728;
69     google_ad_height = 90;
70   //-->
71   </script>
72   <script type="text/javascript"
73     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
74   </script>
75 </div>
76 <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../discourse-server">
77   <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/logo.jpg"
78   alt="ImageMagick Logo"
79   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
80 <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../index.html">
81   <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/sprite.jpg"
82   alt="ImageMagick Sprite"
83   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
84 </div>
85
86 <div class="westbar">
87
88 <div class="menu">
89   <a title="About ImageMagick" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../index.html">About ImageMagick</a>
90 </div>
91 <div class="menu">
92   <a title="Binary Releases" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html">Binary Releases</a>
93 </div>
94 <div class="sub">
95     <a title="Binary Release: Unix" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#unix">Unix</a>
96 </div>
97 <div class="sub">
98     <a title="Binary Release: MacOS X" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#macosx">Mac OS X</a>
99 </div>
100 <div class="sub">
101     <a title="Binary Release: iOS" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#iOS">iOS</a>
102 </div>
103 <div class="sub">
104     <a title="Binary Release: Windows" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/binary-releases.html#windows">Windows</a>
105 </div>
106 <div class="sep"></div>
107 <div class="menu">
108   <a title="Command-line Tools" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-tools.html">Command-line Tools</a>
109 </div>
110 <div class="sub">
111     <a title="Command-line Tools: Processing" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-processing.html">Processing</a>
112 </div>
113 <div class="sub">
114     <a title="Command-line Tools: Options" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/command-line-options.html">Options</a>
115 </div>
116 <div class="sub">
117     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
118 </div>
119 <div class="menu">
120   <a title="Program Interfaces" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/api.html">Program Interfaces</a>
121 </div>
122 <div class="sub">
123     <a title="Program Interface: MagickWand" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick-wand.html">MagickWand</a>
124 </div>
125 <div class="sub">
126     <a title="Program Interface: MagickCore" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick-core.html">MagickCore</a>
127 </div>
128 <div class="sub">
129     <a title="Program Interface: PerlMagick" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/perl-magick.html">PerlMagick</a>
130 </div>
131 <div class="sub">
132     <a title="Program Interface: Magick++" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/magick++.html">Magick++</a>
133 </div>
134 <div class="sep"></div>
135 <div  class="menu">
136    <a title="Install from Source" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html">Install from Source</a>
137 </div>
138 <div class="sub">
139     <a title="Install from Source: Unix" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html#unix">Unix</a>
140 </div>
141 <div class="sub">
142     <a title="Install from Source: Windows" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/install-source.html#windows">Windows</a>
143  </div>
144 <div class="menu">
145   <a title="Resources" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/resources.html">Resources</a>
146 </div>
147 <div class="menu">
148   <a title="Architecture" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/architecture.html">Architecture</a>
149 </div>
150 <div class="menu">
151   <a title="Download" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/download.html">Download</a>
152 </div>
153 <div class="sep"></div>
154 <div class="menu">
155   <a title="Search" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/search.html">Search</a>
156 </div>
157 <div class="sep"></div>
158 <div class="menu">
159   <a title="Site Map" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/sitemap.html">Site Map</a>
160 </div>
161 <div  class="sub">
162   <a title="Site Map: Links" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/links.html">Links</a>
163 </div>
164 <div class="sep"></div>
165 <div class="menu">
166   <a rel="follow" title="Sponsors" href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../www/sponsors.html">Sponsors:</a>
167
168   <a href="http://www.networkredux.com"> <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/networkredux.png" width="140" height="31" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
169   <a href="http://www.dinodirect.com/ipads-tablets/"> <img src="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../images/dino-direct.jpg" width="140" height="90" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a><!-- 201208010120 mickey@163... -->
170 <div class="sponsbox">
171 <div class="sponsor">
172   <a rel="follow" title="Sponsor: The Fastest &amp; Easiest Way to Find Images" href="http://www.graphicsfactory.com">The Fastest &amp; Easiest Way to Find Images</a><!-- 201210010270 graphicsfac... -->
173 </div>
174 <div class="sponsor">
175   <a rel="follow" title="Sponsor: VPS" href="http://www.interdominios.com/vps">VPS</a><!-- 201209010090 barsh@inter... -->
176 </div>
177 <div class="sponsor">
178   <a rel="follow" title="Werbebanner Werbeplane" href="http://www.allesbanner.de">Werbebanner Werbeplane</a><!-- 201212010450 info@druck... -->
179 </div>
180 <div class="sponsor">
181   <a rel="follow" title="Entertainment News &amp; Photos" href="http://www.zimbio.com">Entertainment News &amp; Photos</a><!-- 201211010540 bd@zimb... -->
182 </div>
183 <div class="sponsor">
184   <a rel="follow" title="Sponsor: LED24" href="http://led24.de/">LED24</a><!-- 201207010270 info@led24... -->
185 </div>
186 <div class="sponsor">
187   <a rel="follow" title="Sponsor: Best Website Hosting" href="http://www.top-cheap-web-hosting.com">Best Website Hosting</a><!-- 201304010090 eunge.liu-->
188 </div>
189 <div class="sponsor">
190   <a rel="follow" title="Android Tablet" href="http://www.dinodirect.com/ipads-tablets/">Android Tablet</a><!-- 201208010120 mickey@163... -->
191 </div>
192 <div class="sponsor">
193   <a rel="follow" title="Sponsor: Web Site Hosting" href="http://webhostinggeeks.com">Web Site Hosting</a><!-- 201302010900 funds@enmob... -->
194 </div>
195 <div class="sponsor">
196    <a rel="follow" title="Sponsor: Premium Quality Stock Photos" href="http://www.f1online.pro/en/">Premium Quality Stock Photos</a><!-- 2012080100540 ... -->
197 </div>
198 <div class="sponsor">
199    <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 2012070100250 ... -->
200 </div>
201 <div class="sponsor">
202   <a rel="follow" title="Sponsor: Managed Server" href="http://www.robhost.de">Managed Server</a><!-- 201210010720 klikics... -->
203 </div>
204 <div class="sponsor">
205   <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
206 </div>
207 <div  class="sponsor">
208    <a rel="follow" title="Sponsor: Kaffeemaschinen reparatur" href="http://www.kaffeemaschinen-reparatur.de">Kaffeemaschinen reparatur</a><!-- 2012080100030 Temurbas atlas-multimedia-->
209 </div>
210 <div class="sponsor">
211    <a rel="follow" title="Sponsor: Waschmaschinen Reparatur Berlin" href="http://www.waschmaschinen-reparaturen-berlin.de">Waschmaschinen Reparatur Berlin</a><!-- 2012070100030 Temurbas@autoteile-->
212 </div>
213 </div>
214 </div>
215 </div>
216
217 <div class="eastbar">
218   <div class="g-plusone" id="gplusone"></div>
219   <script type="text/javascript">
220     window.___gcfg = {
221       lang: 'en-US'
222     };
223
224     (function() {
225       var po = document.createElement('script');
226       po.type = 'text/javascript'; po.async = true;
227       po.src = 'https://apis.google.com/js/plusone.js';
228       var script = document.getElementsByTagName('script')[0];
229       script.parentNode.insertBefore(po, script);
230     })();
231     var gplusone = document.getElementById("gplusone");
232     gplusone.setAttribute("data-size","medium");
233     gplusone.setAttribute("data-count","false");
234   </script>
235 </div>
236
237 <div class="main">
238
239 <h1>Module cache Methods</h1>
240 <p class="navigation-index">[<a href="cache.html#AcquirePixelCacheNexus">AcquirePixelCacheNexus</a> &bull; <a href="cache.html#GetAuthenticIndexQueue">GetAuthenticIndexQueue</a> &bull; <a href="cache.html#GetAuthenticPixelQueue">GetAuthenticPixelQueue</a> &bull; <a href="cache.html#GetAuthenticPixels">GetAuthenticPixels</a> &bull; <a href="cache.html#GetOneAuthenticPixel">GetOneAuthenticPixel</a> &bull; <a href="cache.html#GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a> &bull; <a href="cache.html#GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a> &bull; <a href="cache.html#GetOneVirtualPixel">GetOneVirtualPixel</a> &bull; <a href="cache.html#GetVirtualIndexQueue">GetVirtualIndexQueue</a> &bull; <a href="cache.html#VirtualPixelModulo">VirtualPixelModulo</a> &bull; <a href="cache.html#GetVirtualPixelQueue">GetVirtualPixelQueue</a> &bull; <a href="cache.html#GetVirtualPixels">GetVirtualPixels</a> &bull; <a href="cache.html#QueueAuthenticPixels">QueueAuthenticPixels</a> &bull; <a href="cache.html#SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a> &bull; <a href="cache.html#SyncAuthenticPixels">SyncAuthenticPixels</a>]</p>
241
242 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
243 <div class="doc-section">
244
245 <p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
246
247 <p>The format of the AcquirePixelCacheNexus method is:</p>
248
249 <pre class="code">
250   NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
251 </pre>
252
253 <p>A description of each parameter follows:</p>
254
255 <h5>number_threads</h5>
256 <p>the number of nexus threads.</p>
257
258  </div>
259 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticIndexQueue">GetAuthenticIndexQueue</a></h2>
260 <div class="doc-section">
261
262 <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>
263
264 <p>The format of the GetAuthenticIndexQueue() method is:</p>
265
266 <pre class="code">
267   IndexPacket *GetAuthenticIndexQueue(const Image *image)
268 </pre>
269
270 <p>A description of each parameter follows:</p>
271
272 <h5>image</h5>
273 <p>the image.</p>
274
275  </div>
276 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
277 <div class="doc-section">
278
279 <p>GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
280
281 <p>The format of the GetAuthenticPixelQueue() method is:</p>
282
283 <pre class="code">
284   PixelPacket *GetAuthenticPixelQueue(const Image image)
285 </pre>
286
287 <p>A description of each parameter follows:</p>
288
289 <h5>image</h5>
290 <p>the image.</p>
291
292  </div>
293 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
294 <div class="doc-section">
295
296 <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>
297
298 <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>
299
300 <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>
301
302 <p>The format of the GetAuthenticPixels() method is:</p>
303
304 <pre class="code">
305   PixelPacket *GetAuthenticPixels(Image *image,const ssize_t x,
306     const ssize_t y,const size_t columns,const size_t rows,
307     ExceptionInfo *exception)
308 </pre>
309
310 <p>A description of each parameter follows:</p>
311
312 <h5>image</h5>
313 <p>the image.</p>
314
315 <h5>x,y,columns,rows</h5>
316 <p>These values define the perimeter of a region of pixels.</p>
317
318 <h5>exception</h5>
319 <p>return any errors or warnings in this structure.</p>
320
321  </div>
322 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
323 <div class="doc-section">
324
325 <p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location.  The image background color is returned if an error occurs.</p>
326
327 <p>The format of the GetOneAuthenticPixel() method is:</p>
328
329 <pre class="code">
330   MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
331     const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
332 </pre>
333
334 <p>A description of each parameter follows:</p>
335
336 <h5>image</h5>
337 <p>the image.</p>
338
339 <h5>x,y</h5>
340 <p>These values define the location of the pixel to return.</p>
341
342 <h5>pixel</h5>
343 <p>return a pixel at the specified (x,y) location.</p>
344
345 <h5>exception</h5>
346 <p>return any errors or warnings in this structure.</p>
347
348  </div>
349 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
350 <div class="doc-section">
351
352 <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>
353
354 <p>The format of the GetOneVirtualMagickPixel() method is:</p>
355
356 <pre class="code">
357   MagickBooleanType GetOneVirtualMagickPixel(const Image image,
358     const ssize_t x,const ssize_t y,MagickPixelPacket *pixel,
359     ExceptionInfo exception)
360 </pre>
361
362 <p>A description of each parameter follows:</p>
363
364 <h5>image</h5>
365 <p>the image.</p>
366
367 <h5>x,y</h5>
368 <p>these values define the location of the pixel to return.</p>
369
370 <h5>pixel</h5>
371 <p>return a pixel at the specified (x,y) location.</p>
372
373 <h5>exception</h5>
374 <p>return any errors or warnings in this structure.</p>
375
376  </div>
377 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
378 <div class="doc-section">
379
380 <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>
381
382 <p>The format of the GetOneVirtualMethodPixel() method is:</p>
383
384 <pre class="code">
385   MagickBooleanType GetOneVirtualMethodPixel(const Image image,
386     const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
387     const ssize_t y,Pixelpacket *pixel,ExceptionInfo exception)
388 </pre>
389
390 <p>A description of each parameter follows:</p>
391
392 <h5>image</h5>
393 <p>the image.</p>
394
395 <h5>virtual_pixel_method</h5>
396 <p>the virtual pixel method.</p>
397
398 <h5>x,y</h5>
399 <p>These values define the location of the pixel to return.</p>
400
401 <h5>pixel</h5>
402 <p>return a pixel at the specified (x,y) location.</p>
403
404 <h5>exception</h5>
405 <p>return any errors or warnings in this structure.</p>
406
407  </div>
408 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
409 <div class="doc-section">
410
411 <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>
412
413 <p>The format of the GetOneVirtualPixel() method is:</p>
414
415 <pre class="code">
416   MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
417     const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
418 </pre>
419
420 <p>A description of each parameter follows:</p>
421
422 <h5>image</h5>
423 <p>the image.</p>
424
425 <h5>x,y</h5>
426 <p>These values define the location of the pixel to return.</p>
427
428 <h5>pixel</h5>
429 <p>return a pixel at the specified (x,y) location.</p>
430
431 <h5>exception</h5>
432 <p>return any errors or warnings in this structure.</p>
433
434  </div>
435 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualIndexQueue">GetVirtualIndexQueue</a></h2>
436 <div class="doc-section">
437
438 <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>
439
440 <p>The format of the GetVirtualIndexQueue() method is:</p>
441
442 <pre class="code">
443   const IndexPacket *GetVirtualIndexQueue(const Image *image)
444 </pre>
445
446 <p>A description of each parameter follows:</p>
447
448 <h5>image</h5>
449 <p>the image.</p>
450
451  </div>
452 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="VirtualPixelModulo">VirtualPixelModulo</a></h2>
453 <div class="doc-section">
454
455 <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>
456  </div>
457 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
458 <div class="doc-section">
459
460 <p>GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
461
462 <p>The format of the GetVirtualPixelQueue() method is:</p>
463
464 <pre class="code">
465   const PixelPacket *GetVirtualPixelQueue(const Image image)
466 </pre>
467
468 <p>A description of each parameter follows:</p>
469
470 <h5>image</h5>
471 <p>the image.</p>
472
473  </div>
474 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
475 <div class="doc-section">
476
477 <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>
478
479 <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>
480
481 <p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
482
483 <p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe.  In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
484
485 <p>The format of the GetVirtualPixels() method is:</p>
486
487 <pre class="code">
488   const PixelPacket *GetVirtualPixels(const Image *image,const ssize_t x,
489     const ssize_t y,const size_t columns,const size_t rows,
490     ExceptionInfo *exception)
491 </pre>
492
493 <p>A description of each parameter follows:</p>
494
495 <h5>image</h5>
496 <p>the image.</p>
497
498 <h5>x,y,columns,rows</h5>
499 <p>These values define the perimeter of a region of pixels.</p>
500
501 <h5>exception</h5>
502 <p>return any errors or warnings in this structure.</p>
503
504  </div>
505 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
506 <div class="doc-section">
507
508 <p>QueueAuthenticPixels() queues a mutable pixel region.  If the region is successfully initialized 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>
509
510 <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>
511
512 <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>
513
514 <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>
515
516 <p>The format of the QueueAuthenticPixels() method is:</p>
517
518 <pre class="code">
519   PixelPacket *QueueAuthenticPixels(Image *image,const ssize_t x,
520     const ssize_t y,const size_t columns,const size_t rows,
521     ExceptionInfo *exception)
522 </pre>
523
524 <p>A description of each parameter follows:</p>
525
526 <h5>image</h5>
527 <p>the image.</p>
528
529 <h5>x,y,columns,rows</h5>
530 <p>These values define the perimeter of a region of pixels.</p>
531
532 <h5>exception</h5>
533 <p>return any errors or warnings in this structure.</p>
534
535  </div>
536 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
537 <div class="doc-section">
538
539 <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>
540
541 <p>The format of the SetPixelCacheVirtualMethod() method is:</p>
542
543 <pre class="code">
544   VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
545     const VirtualPixelMethod virtual_pixel_method)
546 </pre>
547
548 <p>A description of each parameter follows:</p>
549
550 <h5>image</h5>
551 <p>the image.</p>
552
553 <h5>virtual_pixel_method</h5>
554 <p>choose the type of virtual pixel.</p>
555
556  </div>
557 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
558 <div class="doc-section">
559
560 <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>
561
562 <p>The format of the SyncAuthenticPixels() method is:</p>
563
564 <pre class="code">
565   MagickBooleanType SyncAuthenticPixels(Image *image,
566     ExceptionInfo *exception)
567 </pre>
568
569 <p>A description of each parameter follows:</p>
570
571 <h5>image</h5>
572 <p>the image.</p>
573
574 <h5>exception</h5>
575 <p>return any errors or warnings in this structure.</p>
576
577  </div>
578
579 </div>
580
581 <div id="linkbar">
582     <span id="linkbar-west">&nbsp;</span>
583     <span id="linkbar-center">
584       <a href="../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../discourse-server">Discourse Server</a> &bull;
585       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
586     </span>
587     <span id="linkbar-east">&nbsp;</span>
588   </div>
589   <div class="footer">
590     <span id="footer-west">&copy; 1999-2013 ImageMagick Studio LLC</span>
591     <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
592   </div>
593   <div style="clear: both; margin: 0; width: 100%; "></div>
594   <script type="text/javascript">
595     var _gaq = _gaq || [];
596     _gaq.push(['_setAccount', 'UA-17690367-1']);
597     _gaq.push(['_trackPageview']);
598
599     (function() {
600       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
601       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
602       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
603     })();
604   </script>
605 </body>
606 </html>