blob: 269058897ae5facb14b1edf579eecf602e57ba8a [file] [log] [blame]
cristydcca3fa2010-12-29 21:50:07 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
cristy2bd2a982011-02-15 00:52:58 +00003<html version="-//W3C//DTD XHTML 1.1//EN"
4 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="http://www.w3.org/1999/xhtml
7 http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
cristy3eaa0ef2010-03-06 20:35:26 +00008<head>
cristy3c98a4f2010-08-13 20:09:41 +00009 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
10 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +000011 <title>ImageMagick: MagickCore, C API for ImageMagick: Get or Set Image Pixels</title>
cristy3ed852e2009-09-05 21:47:34 +000012 <meta http-equiv="Content-Language" content="en-US"/>
13 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
14 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000015 <meta name="Application-name" content="ImageMagick"/>
cristyaf8d6652011-02-04 21:57:45 +000016 <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images."/>
cristy3c98a4f2010-08-13 20:09:41 +000017 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy3ed852e2009-09-05 21:47:34 +000018 <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"/>
cristy3ed852e2009-09-05 21:47:34 +000020 <meta name="Rating" content="GENERAL"/>
21 <meta name="Robots" content="INDEX, FOLLOW"/>
22 <meta name="Generator" content="ImageMagick Studio LLC"/>
23 <meta name="Author" content="ImageMagick Studio LLC"/>
24 <meta name="Revisit-after" content="2 DAYS"/>
25 <meta name="Resource-type" content="document"/>
cristy4103d562010-12-10 01:38:54 +000026 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy3ed852e2009-09-05 21:47:34 +000027 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000028 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000029 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
30 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy7a40ba82011-01-08 20:31:18 +000031 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy3c98a4f2010-08-13 20:09:41 +000032 <style type="text/css" media="all">
33 @import url("../../www/magick.css");
34 </style>
cristydcca3fa2010-12-29 21:50:07 +000035 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000036 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
37 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
38 <script type="text/javascript">
39 $(document).ready(function() {
40 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
41 'transitionIn' : 'elastic',
42 'transitionOut' : 'elastic',
43 'overlayShow' : false,
44 'opacity' : true
45 });
46 });
47 </script>
cristy3eaa0ef2010-03-06 20:35:26 +000048</head>
49
50<body id="www-imagemagick-org">
51<div class="titlebar">
52<a href="../../index.html">
53 <img src="../../images/script.png" alt="[ImageMagick]"
54 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
55<a href="http://www.networkredux.com">
56 <img src="../../images/networkredux.png" alt="[sponsor]"
cristy52923442011-01-15 22:54:31 +000057 style="margin-top: 42px; border: 0px; float: left;" /></a>
cristy3eaa0ef2010-03-06 20:35:26 +000058<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000059 <img src="../../images/logo.jpg"
60 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000061 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy3eaa0ef2010-03-06 20:35:26 +000062<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000063 <img src="../../images/sprite.jpg"
64 alt="ImageMagick Sprite"
cristy3eaa0ef2010-03-06 20:35:26 +000065 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
66</div>
67
cristyce69bb02010-07-27 19:49:46 +000068<div class="westbar">
cristy3eaa0ef2010-03-06 20:35:26 +000069
cristy3ed852e2009-09-05 21:47:34 +000070<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000071 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000072</div>
cristy3eaa0ef2010-03-06 20:35:26 +000073<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000074<div class="menu">
cristybb503372010-05-27 20:51:26 +000075 <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: Windows" href="../../www/binary-releases.html#windows">Windows</a>
85</div>
86<div class="sep"></div>
87<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000088 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +000089</div>
90<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000091 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +000092</div>
93<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000094 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +000095</div>
96<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000097 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +000098</div>
99<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000100 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +0000101</div>
102<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000103 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +0000104</div>
105<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000106 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +0000107</div>
108<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000109 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +0000110</div>
111<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000112 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +0000113</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000114<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000115<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000116 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +0000117</div>
118<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000119 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000120</div>
121<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000122 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000123 </div>
124<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000125 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000126</div>
cristybb503372010-05-27 20:51:26 +0000127<div class="menu">
128 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
129</div>
cristy3ed852e2009-09-05 21:47:34 +0000130<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000131 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000132</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000133<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000134<div class="menu">
cristy52923442011-01-15 22:54:31 +0000135 <a title="Search" href="../../www/search.html">Search</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">
cristyffb69ed2010-12-25 00:06:48 +0000139 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000140</div>
141<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000142 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000143</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000144<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000145<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000146 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000147
148<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000149<div class="sponsor">
cristyaf8d6652011-02-04 21:57:45 +0000150 <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
151</div>
152<div class="sponsor">
153 <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
154</div>
155<div class="sponsor">
cristy2bd2a982011-02-15 00:52:58 +0000156 <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201107010240 r.leo -->
cristy178edaf2011-01-23 03:42:39 +0000157</div>
cristyec6b4752011-01-08 03:16:23 +0000158<div class="sponsor">
cristy52923442011-01-15 22:54:31 +0000159 <a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
cristy7d52cd62010-10-01 17:26:59 +0000160</div>
161<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000162 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
163</div>
164<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000165 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
166</div>
cristyec6b4752011-01-08 03:16:23 +0000167<div class="sponsor">
cristy178edaf2011-01-23 03:42:39 +0000168 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
169</div>
170<div class="sponsor">
cristy6f77f692011-02-15 15:31:39 +0000171 <a title="Sponsor: Free Catalogs" href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 20120801000600 -->
cristyec6b4752011-01-08 03:16:23 +0000172</div>
cristy3ed852e2009-09-05 21:47:34 +0000173</div>
174</div>
cristyce69bb02010-07-27 19:49:46 +0000175</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000176
cristyce69bb02010-07-27 19:49:46 +0000177<div class="eastbar">
178 <script type="text/javascript">
179 <!--
180 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000181 google_ad_slot = "0574824969";
182 google_ad_width = 160;
183 google_ad_height = 600;
184 //-->
185 </script>
186 <script type="text/javascript"
187 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
188 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000189</div>
190
191<div class="main">
192
cristy6f77f692011-02-15 15:31:39 +0000193<h1>Module cache
194 Methods</h1>
195<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>
cristy3ed852e2009-09-05 21:47:34 +0000196
cristy6f77f692011-02-15 15:31:39 +0000197<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
198_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
199<div class="doc-section">
200
201<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
202
203<p>The format of the AcquirePixelCacheNexus method is:</p>
204
205<pre class="code">
206 NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
207</pre>
208
209<p>A description of each parameter follows:</p>
210
211<h5>number_threads</h5>
212<p>the number of nexus threads.</p>
213
214 </div>
215<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
216_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
234_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
235<div class="doc-section">
236
237<p>GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
238
239<p>The format of the GetAuthenticPixelQueue() method is:</p>
240
241<pre class="code">
242 PixelPacket *GetAuthenticPixelQueue(const Image image)
243</pre>
244
245<p>A description of each parameter follows:</p>
246
247<h5>image</h5>
248<p>the image.</p>
249
250 </div>
251<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
252_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
253<div class="doc-section">
254
255<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>
256
257<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>
258
259<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>
260
261<p>The format of the GetAuthenticPixels() method is:</p>
262
263<pre class="code">
264 PixelPacket *GetAuthenticPixels(Image *image,const ssize_t x,
265 const ssize_t y,const size_t columns,const size_t rows,
266 ExceptionInfo *exception)
267</pre>
268
269<p>A description of each parameter follows:</p>
270
271<h5>image</h5>
272<p>the image.</p>
273
274<h5>x,y,columns,rows</h5>
275<p>These values define the perimeter of a region of pixels.</p>
276
277<h5>exception</h5>
278<p>return any errors or warnings in this structure.</p>
279
280 </div>
281<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
282_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
310_8c.html" id="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
311<div class="doc-section">
312
313<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>
314
315<p>The format of the GetOneVirtualMagickPixel() method is:</p>
316
317<pre class="code">
318 MagickBooleanType GetOneVirtualMagickPixel(const Image image,
319 const ssize_t x,const ssize_t y,MagickPixelPacket *pixel,
320 ExceptionInfo exception)
321</pre>
322
323<p>A description of each parameter follows:</p>
324
325<h5>image</h5>
326<p>the image.</p>
327
328<h5>x,y</h5>
329<p>these values define the location of the pixel to return.</p>
330
331<h5>pixel</h5>
332<p>return a pixel at the specified (x,y) location.</p>
333
334<h5>exception</h5>
335<p>return any errors or warnings in this structure.</p>
336
337 </div>
338<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
339_8c.html" id="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
340<div class="doc-section">
341
342<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>
343
344<p>The format of the GetOneVirtualMethodPixel() method is:</p>
345
346<pre class="code">
347 MagickBooleanType GetOneVirtualMethodPixel(const Image image,
348 const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
349 const ssize_t y,Pixelpacket *pixel,ExceptionInfo exception)
350</pre>
351
352<p>A description of each parameter follows:</p>
353
354<h5>image</h5>
355<p>the image.</p>
356
357<h5>virtual_pixel_method</h5>
358<p>the virtual pixel method.</p>
359
360<h5>x,y</h5>
361<p>These values define the location of the pixel to return.</p>
362
363<h5>pixel</h5>
364<p>return a pixel at the specified (x,y) location.</p>
365
366<h5>exception</h5>
367<p>return any errors or warnings in this structure.</p>
368
369 </div>
370<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
371_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
372<div class="doc-section">
373
374<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>
375
376<p>The format of the GetOneVirtualPixel() method is:</p>
377
378<pre class="code">
379 MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
380 const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
381</pre>
382
383<p>A description of each parameter follows:</p>
384
385<h5>image</h5>
386<p>the image.</p>
387
388<h5>x,y</h5>
389<p>These values define the location of the pixel to return.</p>
390
391<h5>pixel</h5>
392<p>return a pixel at the specified (x,y) location.</p>
393
394<h5>exception</h5>
395<p>return any errors or warnings in this structure.</p>
396
397 </div>
398<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
399_8c.html" id="GetVirtualIndexQueue">GetVirtualIndexQueue</a></h2>
400<div class="doc-section">
401
402<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>
403
404<p>The format of the GetVirtualIndexQueue() method is:</p>
405
406<pre class="code">
407 const IndexPacket *GetVirtualIndexQueue(const Image *image)
408</pre>
409
410<p>A description of each parameter follows:</p>
411
412<h5>image</h5>
413<p>the image.</p>
414
415 </div>
416<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
417_8c.html" id="VirtualPixelModulo">VirtualPixelModulo</a></h2>
418<div class="doc-section">
419
420<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>
421 </div>
422<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
423_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
424<div class="doc-section">
425
426<p>GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
427
428<p>The format of the GetVirtualPixelQueue() method is:</p>
429
430<pre class="code">
431 const PixelPacket *GetVirtualPixelQueue(const Image image)
432</pre>
433
434<p>A description of each parameter follows:</p>
435
436<h5>image</h5>
437<p>the image.</p>
438
439 </div>
440<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
441_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
442<div class="doc-section">
443
444<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>
445
446<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>
447
448<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
449
450<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe. In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
451
452<p>The format of the GetVirtualPixels() method is:</p>
453
454<pre class="code">
455 const PixelPacket *GetVirtualPixels(const Image *image,const ssize_t x,
456 const ssize_t y,const size_t columns,const size_t rows,
457 ExceptionInfo *exception)
458</pre>
459
460<p>A description of each parameter follows:</p>
461
462<h5>image</h5>
463<p>the image.</p>
464
465<h5>x,y,columns,rows</h5>
466<p>These values define the perimeter of a region of pixels.</p>
467
468<h5>exception</h5>
469<p>return any errors or warnings in this structure.</p>
470
471 </div>
472<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
473_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
474<div class="doc-section">
475
476<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>
477
478<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>
479
480<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>
481
482<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>
483
484<p>The format of the QueueAuthenticPixels() method is:</p>
485
486<pre class="code">
487 PixelPacket *QueueAuthenticPixels(Image *image,const ssize_t x,
488 const ssize_t y,const size_t columns,const size_t rows,
489 ExceptionInfo *exception)
490</pre>
491
492<p>A description of each parameter follows:</p>
493
494<h5>image</h5>
495<p>the image.</p>
496
497<h5>x,y,columns,rows</h5>
498<p>These values define the perimeter of a region of pixels.</p>
499
500<h5>exception</h5>
501<p>return any errors or warnings in this structure.</p>
502
503 </div>
504<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
505_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
506<div class="doc-section">
507
508<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>
509
510<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
511
512<pre class="code">
513 VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
514 const VirtualPixelMethod virtual_pixel_method)
515</pre>
516
517<p>A description of each parameter follows:</p>
518
519<h5>image</h5>
520<p>the image.</p>
521
522<h5>virtual_pixel_method</h5>
523<p>choose the type of virtual pixel.</p>
524
525 </div>
526<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
527_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
528<div class="doc-section">
529
530<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>
531
532<p>The format of the SyncAuthenticPixels() method is:</p>
533
534<pre class="code">
535 MagickBooleanType SyncAuthenticPixels(Image *image,
536 ExceptionInfo *exception)
537</pre>
538
539<p>A description of each parameter follows:</p>
540
541<h5>image</h5>
542<p>the image.</p>
543
544<h5>exception</h5>
545<p>return any errors or warnings in this structure.</p>
546
547 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000548
549</div>
550
551<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000552 <span id="linkbar-west">&nbsp;</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000553 <span id="linkbar-center">
554 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000555 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000556 </span>
557 <span id="linkbar-east">&nbsp;</span>
558 </div>
559 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000560 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000561 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
562 </div>
563 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000564 <script type="text/javascript">
565 var _gaq = _gaq || [];
566 _gaq.push(['_setAccount', 'UA-17690367-1']);
567 _gaq.push(['_trackPageview']);
568
569 (function() {
570 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
571 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
572 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
573 })();
574 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000575</body>
576</html>