]> 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" \r
2   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html version="-//W3C//DTD XHTML 1.1//EN"\r
4       xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"\r
5       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
6       xsi:schemaLocation="http://www.w3.org/1999/xhtml\r
7                           http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">\r
8 <head>\r
9   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
10   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
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."/>
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, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
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-2011 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="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
31   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />\r
32   <style type="text/css" media="all">\r
33     @import url("../../www/magick.css");\r
34   </style>\r
35   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
36   <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
37   <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
38   <script type="text/javascript">\r
39     $(document).ready(function() {\r
40       $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
41         'transitionIn'  : 'elastic',\r
42         'transitionOut' : 'elastic',\r
43         'overlayShow'   : false,\r
44         'opacity'       : true\r
45       });\r
46     });\r
47   </script>\r
48 </head>\r
49 \r
50 <body id="www-imagemagick-org">\r
51 <div class="titlebar">\r
52 <a href="../../index.html">\r
53   <img src="../../images/script.png" alt="[ImageMagick]"\r
54   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
55 <a href="http://www.networkredux.com">\r
56   <img src="../../images/networkredux.png" alt="[sponsor]"\r
57   style="margin-top: 42px; border: 0px; float: left;" /></a>\r
58 <a href="http://www.imagemagick.org/discourse-server/">\r
59   <img src="../../images/logo.jpg"\r
60   alt="ImageMagick Logo"\r
61   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>\r
62 <a href="../../index.html">\r
63   <img src="../../images/sprite.jpg"\r
64   alt="ImageMagick Sprite"\r
65   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
66 </div>\r
67 \r
68 <div class="westbar">\r
69 \r
70 <div class="menu">
71   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
72 </div>
73 <div class="sep"></div>\r
74 <div class="menu">
75   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
76 </div>
77 <div class="sub">
78     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
79 </div>
80 <div class="sub">
81     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
82 </div>
83 <div class="sub">
84     <a title="Binary Release: iPhone" href="../../www/binary-releases.html#iPhone">iPhone</a>
85 </div>
86 <div class="sub">
87     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
88 </div>
89 <div class="sep"></div>\r
90 <div class="menu">
91   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
92 </div>
93 <div class="sub">
94     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
95 </div>
96 <div class="sub">
97     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
98 </div>
99 <div class="sub">
100     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
101 </div>
102 <div class="menu">
103   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
104 </div>
105 <div class="sub">
106     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
107 </div>
108 <div class="sub">
109     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
110 </div>
111 <div class="sub">
112     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
113 </div>
114 <div class="sub">
115     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
116 </div>
117 <div class="sep"></div>\r
118 <div  class="menu">
119    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
120 </div>
121 <div class="sub">
122     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
123 </div>
124 <div class="sub">
125     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
126  </div>
127 <div class="menu">
128   <a title="Resources" href="../../www/resources.html">Resources</a>
129 </div>
130 <div class="menu">
131   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
132 </div>
133 <div class="menu">
134   <a title="Download" href="../../www/download.html">Download</a>
135 </div>
136 <div class="sep"></div>\r
137 <div class="menu">
138   <a title="Search" href="../../www/search.html">Search</a>
139 </div>
140 <div class="sep"></div>\r
141 <div class="menu">
142   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
143 </div>
144 <div  class="sub">
145   <a title="Site Map: Links" href="../../www/links.html">Links</a>
146 </div>
147 <div class="sep"></div>\r
148 <div  class="menu">
149   <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
150
151 <div class="sponsbox">
152 <div  class="sponsor">
153   <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
154 </div>
155 <div  class="sponsor">
156   <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
157 </div>
158 <div  class="sponsor">
159   <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201107010240 r.leo -->
160 </div>
161 <div class="sponsor">
162   <a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
163 </div>
164 <div  class="sponsor">
165   <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
166 </div>
167 <div  class="sponsor">
168   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
169 </div>
170 <div  class="sponsor">
171   <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
172 </div>
173 <div  class="sponsor">
174    <a title="Sponsor: Custom T-Shirts" href="http://www.ooshirts.com">Custom T-Shirts</a><!-- 2011050100030 ooshirts.com-->
175 </div>
176 </div>
177 </div>
178 </div>\r
179 \r
180 <div class="eastbar">\r
181   <script type="text/javascript">\r
182   <!--\r
183     google_ad_client = "pub-3129977114552745";\r
184     google_ad_slot = "0574824969";\r
185     google_ad_width = 160;\r
186     google_ad_height = 600;\r
187   //-->\r
188   </script>\r
189   <script type="text/javascript"\r
190     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
191   </script>\r
192 </div>\r
193 \r
194 <div class="main">\r
195 \r
196 <h1>Module cache Methods</h1>
197 <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>
198
199 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
200 <div class="doc-section">
201
202 <p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
203
204 <p>The format of the AcquirePixelCacheNexus method is:</p>
205
206 <pre class="code">
207   NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
208 </pre>
209
210 <p>A description of each parameter follows:</p>
211
212 <h5>number_threads</h5>
213 <p>the number of nexus threads.</p>
214
215  </div>
216 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticIndexQueue">GetAuthenticIndexQueue</a></h2>
217 <div class="doc-section">
218
219 <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>
220
221 <p>The format of the GetAuthenticIndexQueue() method is:</p>
222
223 <pre class="code">
224   IndexPacket *GetAuthenticIndexQueue(const Image *image)
225 </pre>
226
227 <p>A description of each parameter follows:</p>
228
229 <h5>image</h5>
230 <p>the image.</p>
231
232  </div>
233 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
234 <div class="doc-section">
235
236 <p>GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
237
238 <p>The format of the GetAuthenticPixelQueue() method is:</p>
239
240 <pre class="code">
241   PixelPacket *GetAuthenticPixelQueue(const Image image)
242 </pre>
243
244 <p>A description of each parameter follows:</p>
245
246 <h5>image</h5>
247 <p>the image.</p>
248
249  </div>
250 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
251 <div class="doc-section">
252
253 <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>
254
255 <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>
256
257 <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>
258
259 <p>The format of the GetAuthenticPixels() method is:</p>
260
261 <pre class="code">
262   PixelPacket *GetAuthenticPixels(Image *image,const ssize_t x,
263     const ssize_t y,const size_t columns,const size_t rows,
264     ExceptionInfo *exception)
265 </pre>
266
267 <p>A description of each parameter follows:</p>
268
269 <h5>image</h5>
270 <p>the image.</p>
271
272 <h5>x,y,columns,rows</h5>
273 <p>These values define the perimeter of a region of pixels.</p>
274
275 <h5>exception</h5>
276 <p>return any errors or warnings in this structure.</p>
277
278  </div>
279 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
280 <div class="doc-section">
281
282 <p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location.  The image background color is returned if an error occurs.</p>
283
284 <p>The format of the GetOneAuthenticPixel() method is:</p>
285
286 <pre class="code">
287   MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
288     const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
289 </pre>
290
291 <p>A description of each parameter follows:</p>
292
293 <h5>image</h5>
294 <p>the image.</p>
295
296 <h5>x,y</h5>
297 <p>These values define the location of the pixel to return.</p>
298
299 <h5>pixel</h5>
300 <p>return a pixel at the specified (x,y) location.</p>
301
302 <h5>exception</h5>
303 <p>return any errors or warnings in this structure.</p>
304
305  </div>
306 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
307 <div class="doc-section">
308
309 <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>
310
311 <p>The format of the GetOneVirtualMagickPixel() method is:</p>
312
313 <pre class="code">
314   MagickBooleanType GetOneVirtualMagickPixel(const Image image,
315     const ssize_t x,const ssize_t y,MagickPixelPacket *pixel,
316     ExceptionInfo exception)
317 </pre>
318
319 <p>A description of each parameter follows:</p>
320
321 <h5>image</h5>
322 <p>the image.</p>
323
324 <h5>x,y</h5>
325 <p>these values define the location of the pixel to return.</p>
326
327 <h5>pixel</h5>
328 <p>return a pixel at the specified (x,y) location.</p>
329
330 <h5>exception</h5>
331 <p>return any errors or warnings in this structure.</p>
332
333  </div>
334 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
335 <div class="doc-section">
336
337 <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>
338
339 <p>The format of the GetOneVirtualMethodPixel() method is:</p>
340
341 <pre class="code">
342   MagickBooleanType GetOneVirtualMethodPixel(const Image image,
343     const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
344     const ssize_t y,Pixelpacket *pixel,ExceptionInfo exception)
345 </pre>
346
347 <p>A description of each parameter follows:</p>
348
349 <h5>image</h5>
350 <p>the image.</p>
351
352 <h5>virtual_pixel_method</h5>
353 <p>the virtual pixel method.</p>
354
355 <h5>x,y</h5>
356 <p>These values define the location of the pixel to return.</p>
357
358 <h5>pixel</h5>
359 <p>return a pixel at the specified (x,y) location.</p>
360
361 <h5>exception</h5>
362 <p>return any errors or warnings in this structure.</p>
363
364  </div>
365 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
366 <div class="doc-section">
367
368 <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>
369
370 <p>The format of the GetOneVirtualPixel() method is:</p>
371
372 <pre class="code">
373   MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
374     const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
375 </pre>
376
377 <p>A description of each parameter follows:</p>
378
379 <h5>image</h5>
380 <p>the image.</p>
381
382 <h5>x,y</h5>
383 <p>These values define the location of the pixel to return.</p>
384
385 <h5>pixel</h5>
386 <p>return a pixel at the specified (x,y) location.</p>
387
388 <h5>exception</h5>
389 <p>return any errors or warnings in this structure.</p>
390
391  </div>
392 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualIndexQueue">GetVirtualIndexQueue</a></h2>
393 <div class="doc-section">
394
395 <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>
396
397 <p>The format of the GetVirtualIndexQueue() method is:</p>
398
399 <pre class="code">
400   const IndexPacket *GetVirtualIndexQueue(const Image *image)
401 </pre>
402
403 <p>A description of each parameter follows:</p>
404
405 <h5>image</h5>
406 <p>the image.</p>
407
408  </div>
409 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="VirtualPixelModulo">VirtualPixelModulo</a></h2>
410 <div class="doc-section">
411
412 <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>
413  </div>
414 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
415 <div class="doc-section">
416
417 <p>GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
418
419 <p>The format of the GetVirtualPixelQueue() method is:</p>
420
421 <pre class="code">
422   const PixelPacket *GetVirtualPixelQueue(const Image image)
423 </pre>
424
425 <p>A description of each parameter follows:</p>
426
427 <h5>image</h5>
428 <p>the image.</p>
429
430  </div>
431 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
432 <div class="doc-section">
433
434 <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>
435
436 <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>
437
438 <p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
439
440 <p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe.  In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
441
442 <p>The format of the GetVirtualPixels() method is:</p>
443
444 <pre class="code">
445   const PixelPacket *GetVirtualPixels(const Image *image,const ssize_t x,
446     const ssize_t y,const size_t columns,const size_t rows,
447     ExceptionInfo *exception)
448 </pre>
449
450 <p>A description of each parameter follows:</p>
451
452 <h5>image</h5>
453 <p>the image.</p>
454
455 <h5>x,y,columns,rows</h5>
456 <p>These values define the perimeter of a region of pixels.</p>
457
458 <h5>exception</h5>
459 <p>return any errors or warnings in this structure.</p>
460
461  </div>
462 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
463 <div class="doc-section">
464
465 <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>
466
467 <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>
468
469 <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>
470
471 <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>
472
473 <p>The format of the QueueAuthenticPixels() method is:</p>
474
475 <pre class="code">
476   PixelPacket *QueueAuthenticPixels(Image *image,const ssize_t x,
477     const ssize_t y,const size_t columns,const size_t rows,
478     ExceptionInfo *exception)
479 </pre>
480
481 <p>A description of each parameter follows:</p>
482
483 <h5>image</h5>
484 <p>the image.</p>
485
486 <h5>x,y,columns,rows</h5>
487 <p>These values define the perimeter of a region of pixels.</p>
488
489 <h5>exception</h5>
490 <p>return any errors or warnings in this structure.</p>
491
492  </div>
493 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
494 <div class="doc-section">
495
496 <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>
497
498 <p>The format of the SetPixelCacheVirtualMethod() method is:</p>
499
500 <pre class="code">
501   VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
502     const VirtualPixelMethod virtual_pixel_method)
503 </pre>
504
505 <p>A description of each parameter follows:</p>
506
507 <h5>image</h5>
508 <p>the image.</p>
509
510 <h5>virtual_pixel_method</h5>
511 <p>choose the type of virtual pixel.</p>
512
513  </div>
514 <h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
515 <div class="doc-section">
516
517 <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>
518
519 <p>The format of the SyncAuthenticPixels() method is:</p>
520
521 <pre class="code">
522   MagickBooleanType SyncAuthenticPixels(Image *image,
523     ExceptionInfo *exception)
524 </pre>
525
526 <p>A description of each parameter follows:</p>
527
528 <h5>image</h5>
529 <p>the image.</p>
530
531 <h5>exception</h5>
532 <p>return any errors or warnings in this structure.</p>
533
534  </div>
535 \r
536 </div>\r
537 \r
538 <div id="linkbar">\r
539     <span id="linkbar-west">&nbsp;</span>\r
540     <span id="linkbar-center">\r
541       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
542       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
543     </span>\r
544     <span id="linkbar-east">&nbsp;</span>\r
545   </div>\r
546   <div class="footer">\r
547     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
548     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
549   </div>\r
550   <div style="clear: both; margin: 0; width: 100%; "></div>\r
551   <script type="text/javascript">\r
552     var _gaq = _gaq || [];\r
553     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
554     _gaq.push(['_trackPageview']);\r
555 \r
556     (function() {\r
557       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
558       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
559       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
560     })();\r
561   </script>\r
562 </body>\r
563 </html>\r