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