blob: 199f4888c0149c992e0e0d7ce0d89670886325bd [file] [log] [blame]
cristy3eaa0ef2010-03-06 20:35:26 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
cristy2c839602010-04-03 02:32:08 +00003<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
cristy3eaa0ef2010-03-06 20:35:26 +00004<head>
cristy3de29cc2010-04-15 02:34:44 +00005 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
cristy3eaa0ef2010-03-06 20:35:26 +00006 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />
7 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />
cristy3de29cc2010-04-15 02:34:44 +00008 <style type="text/css" media="all">
cristy3eaa0ef2010-03-06 20:35:26 +00009 @import url("../../www/magick.css");
cristy3de29cc2010-04-15 02:34:44 +000010 </style>
cristy3ed852e2009-09-05 21:47:34 +000011 <link rel="shortcut icon" href="../../images/wand.ico" type="images/vnd.microsoft.icon"/>
12 <title>ImageMagick: MagickCore, C API for ImageMagick: Get or Set Image Pixels</title>
13 <meta http-equiv="Content-Language" content="en-US"/>
14 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
15 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
16 <meta name="Generator" content="PHP"/>
17 <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"/>
18 <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
19 <meta name="Rating" content="GENERAL"/>
20 <meta name="Robots" content="INDEX, FOLLOW"/>
21 <meta name="Generator" content="ImageMagick Studio LLC"/>
22 <meta name="Author" content="ImageMagick Studio LLC"/>
23 <meta name="Revisit-after" content="2 DAYS"/>
24 <meta name="Resource-type" content="document"/>
cristy16af1cb2009-12-11 21:38:29 +000025 <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
cristy3ed852e2009-09-05 21:47:34 +000026 <meta name="Distribution" content="Global"/>
cristy3eaa0ef2010-03-06 20:35:26 +000027</head>
28
29<body id="www-imagemagick-org">
30<div class="titlebar">
31<a href="../../index.html">
32 <img src="../../images/script.png" alt="[ImageMagick]"
33 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
34<a href="http://www.networkredux.com">
35 <img src="../../images/networkredux.png" alt="[sponsor]"
36 style="margin: 45px auto; border: 0px; float: left;" /></a>
37<a href="http://www.imagemagick.org/discourse-server/">
38 <img src="../../images/logo.jpg" alt=""
39 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
40<a href="../../index.html">
41 <img src="../../images/sprite.jpg" alt=""
42 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
43</div>
44
45<div class="eastbar">
46
cristy3ed852e2009-09-05 21:47:34 +000047<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000048 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000049</div>
cristy3eaa0ef2010-03-06 20:35:26 +000050<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000051<div class="menu">
cristybb503372010-05-27 20:51:26 +000052 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
53</div>
54<div class="sub">
55 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
56</div>
57<div class="sub">
58 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
59</div>
60<div class="sub">
61 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
62</div>
63<div class="sep"></div>
64<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000065 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +000066</div>
67<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000068 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +000069</div>
70<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000071 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +000072</div>
73<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000074 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +000075</div>
76<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000077 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +000078</div>
79<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000080 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +000081</div>
82<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000083 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +000084</div>
85<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000086 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000087</div>
88<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000089 <a title="Program Interface: Magick++" href="../../Magick++/">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +000090</div>
cristy3eaa0ef2010-03-06 20:35:26 +000091<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000092<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000093 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +000094</div>
95<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000096 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +000097</div>
98<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000099 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000100 </div>
101<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000102 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000103</div>
cristybb503372010-05-27 20:51:26 +0000104<div class="menu">
105 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
106</div>
cristy3ed852e2009-09-05 21:47:34 +0000107<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000108 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000109</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000110<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000111<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000112 <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</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="Site Map"href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000117</div>
118<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000119 <a title="Site Map: Links"href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000120</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000121<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000122<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000123 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000124
125<div class="sponsbox">
126<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000127 <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
cristyb36feb22010-03-26 16:54:37 +0000128</div>
129<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000130 <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
cristy35aca9a2010-03-04 20:32:46 +0000131</div>
132<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000133 <a title="Sponsor: Deko.net" href="http://www.deko.net">Deko.net</a><!-- 201101010600 Peterssen-->
cristy1f9e1ed2009-11-18 04:09:38 +0000134</div>
135<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000136 <a title="Sponsor: Kredit" href="http://www.online-kredit-index.de">Kredit</a><!-- 201007010120 Buchhorn -->
cristy0f61e612009-11-10 20:03:57 +0000137</div>
138<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000139 <a title="Sponsor: Druckerei" href="http://www.print24.de/">Druckerei</a><!-- 201009010720 -->
cristyc1c61662009-09-30 14:04:37 +0000140</div>
141<div class="sponsor">
cristy83a272e2010-05-07 20:40:35 +0000142 <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
cristyb4c03bb2009-09-27 13:55:46 +0000143</div>
cristy3ed852e2009-09-05 21:47:34 +0000144</div>
145</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000146
147
148</div>
149
150<div class="main">
151
cristy3ed852e2009-09-05 21:47:34 +0000152<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>
153
154<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
155_8c.html" target="source" name="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
156<div class="doc-section">
157
158<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p></ol>
159
160<p>The format of the AcquirePixelCacheNexus method is:</p>
161
162<pre class="code">
cristybb503372010-05-27 20:51:26 +0000163 NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
cristy3ed852e2009-09-05 21:47:34 +0000164</pre>
165
166<p>A description of each parameter follows:</p></ol>
167
168<h5>number_threads</h5>
169<ol><p>the number of nexus threads.</p></ol>
170
171 </div>
172<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
173_8c.html" target="source" name="GetAuthenticIndexQueue">GetAuthenticIndexQueue</a></h2>
174<div class="doc-section">
175
176<p>GetAuthenticIndexQueue() returns the authentic black channel or the colormap indexes associated with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the black channel or colormap indexes are not available.</p></ol>
177
178<p>The format of the GetAuthenticIndexQueue() method is:</p>
179
180<pre class="code">
181 IndexPacket *GetAuthenticIndexQueue(const Image *image)
182</pre>
183
184<p>A description of each parameter follows:</p></ol>
185
186<h5>image</h5>
187<ol><p>the image.</p></ol>
188
189 </div>
190<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
191_8c.html" target="source" name="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
192<div class="doc-section">
193
194<p>GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p></ol>
195
196<p>The format of the GetAuthenticPixelQueue() method is:</p>
197
198<pre class="code">
199 PixelPacket *GetAuthenticPixelQueue(const Image image)
200</pre>
201
202<p>A description of each parameter follows:</p></ol>
203
204<h5>image</h5>
205<ol><p>the image.</p></ol>
206
207 </div>
208<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
209_8c.html" target="source" name="GetAuthenticPixels">GetAuthenticPixels</a></h2>
210<div class="doc-section">
211
212<p>GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a PixelPacket array representing the region is returned, otherwise NULL is returned.</p></ol>
213
cristy16ff93c2010-01-13 23:18:07 +0000214<p>The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000215
216<p>Pixels accessed via the returned pointer represent a simple array of type PixelPacket. If the image type is CMYK or if the storage class is PseduoClass, call GetAuthenticIndexQueue() after invoking GetAuthenticPixels() to obtain the black color component or colormap indexes (of type IndexPacket) corresponding to the region. Once the PixelPacket (and/or IndexPacket) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p></ol>
217
218<p>The format of the GetAuthenticPixels() method is:</p>
219
220<pre class="code">
cristyeaedf062010-05-29 22:36:02 +0000221 PixelPacket *GetAuthenticPixels(Image *image,const ssize_t x,
222 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000223 ExceptionInfo *exception)
224</pre>
225
226<p>A description of each parameter follows:</p></ol>
227
228<h5>image</h5>
229<ol><p>the image.</p></ol>
230
231<h5>x,y,columns,rows</h5>
232<ol><p>These values define the perimeter of a region of pixels.</p></ol>
233
234<h5>exception</h5>
235<ol><p>return any errors or warnings in this structure.</p></ol>
236
237 </div>
238<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
239_8c.html" target="source" name="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
240<div class="doc-section">
241
242<p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.</p></ol>
243
244<p>The format of the GetOneAuthenticPixel() method is:</p>
245
246<pre class="code">
cristybb503372010-05-27 20:51:26 +0000247 MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
248 const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
cristy3ed852e2009-09-05 21:47:34 +0000249</pre>
250
251<p>A description of each parameter follows:</p></ol>
252
253<h5>image</h5>
254<ol><p>the image.</p></ol>
255
256<h5>x,y</h5>
257<ol><p>These values define the location of the pixel to return.</p></ol>
258
259<h5>pixel</h5>
260<ol><p>return a pixel at the specified (x,y) location.</p></ol>
261
262<h5>exception</h5>
263<ol><p>return any errors or warnings in this structure.</p></ol>
264
265 </div>
266<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
267_8c.html" target="source" name="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
268<div class="doc-section">
269
270<p>GetOneVirtualMagickPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p></ol>
271
272<p>The format of the GetOneVirtualMagickPixel() method is:</p>
273
274<pre class="code">
275 MagickBooleanType GetOneVirtualMagickPixel(const Image image,
cristybb503372010-05-27 20:51:26 +0000276 const ssize_t x,const ssize_t y,MagickPixelPacket *pixel,
cristy3ed852e2009-09-05 21:47:34 +0000277 ExceptionInfo exception)
278</pre>
279
280<p>A description of each parameter follows:</p></ol>
281
282<h5>image</h5>
283<ol><p>the image.</p></ol>
284
285<h5>x,y</h5>
286<ol><p>these values define the location of the pixel to return.</p></ol>
287
288<h5>pixel</h5>
289<ol><p>return a pixel at the specified (x,y) location.</p></ol>
290
291<h5>exception</h5>
292<ol><p>return any errors or warnings in this structure.</p></ol>
293
294 </div>
295<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
296_8c.html" target="source" name="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
297<div class="doc-section">
298
299<p>GetOneVirtualMethodPixel() returns a single pixel at the specified (x,y) location as defined by specified pixel method. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p></ol>
300
301<p>The format of the GetOneVirtualMethodPixel() method is:</p>
302
303<pre class="code">
304 MagickBooleanType GetOneVirtualMethodPixel(const Image image,
cristybb503372010-05-27 20:51:26 +0000305 const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
306 const ssize_t y,Pixelpacket *pixel,ExceptionInfo exception)
cristy3ed852e2009-09-05 21:47:34 +0000307</pre>
308
309<p>A description of each parameter follows:</p></ol>
310
311<h5>image</h5>
312<ol><p>the image.</p></ol>
313
314<h5>virtual_pixel_method</h5>
315<ol><p>the virtual pixel method.</p></ol>
316
317<h5>x,y</h5>
318<ol><p>These values define the location of the pixel to return.</p></ol>
319
320<h5>pixel</h5>
321<ol><p>return a pixel at the specified (x,y) location.</p></ol>
322
323<h5>exception</h5>
324<ol><p>return any errors or warnings in this structure.</p></ol>
325
326 </div>
327<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
328_8c.html" target="source" name="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
329<div class="doc-section">
330
331<p>GetOneVirtualPixel() returns a single virtual pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p></ol>
332
333<p>The format of the GetOneVirtualPixel() method is:</p>
334
335<pre class="code">
cristybb503372010-05-27 20:51:26 +0000336 MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
337 const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
cristy3ed852e2009-09-05 21:47:34 +0000338</pre>
339
340<p>A description of each parameter follows:</p></ol>
341
342<h5>image</h5>
343<ol><p>the image.</p></ol>
344
345<h5>x,y</h5>
346<ol><p>These values define the location of the pixel to return.</p></ol>
347
348<h5>pixel</h5>
349<ol><p>return a pixel at the specified (x,y) location.</p></ol>
350
351<h5>exception</h5>
352<ol><p>return any errors or warnings in this structure.</p></ol>
353
354 </div>
355<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
356_8c.html" target="source" name="GetVirtualIndexQueue">GetVirtualIndexQueue</a></h2>
357<div class="doc-section">
358
359<p>GetVirtualIndexQueue() returns the virtual black channel or the colormap indexes associated with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the black channel or colormap indexes are not available.</p></ol>
360
361<p>The format of the GetVirtualIndexQueue() method is:</p>
362
363<pre class="code">
364 const IndexPacket *GetVirtualIndexQueue(const Image *image)
365</pre>
366
367<p>A description of each parameter follows:</p></ol>
368
369<h5>image</h5>
370<ol><p>the image.</p></ol>
371
372 </div>
373<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
374_8c.html" target="source" name="VirtualPixelModulo">VirtualPixelModulo</a></h2>
375<div class="doc-section">
376
377<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>
378 </div>
379<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
380_8c.html" target="source" name="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
381<div class="doc-section">
382
383<p>GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p></ol>
384
385<p>The format of the GetVirtualPixelQueue() method is:</p>
386
387<pre class="code">
388 const PixelPacket *GetVirtualPixelQueue(const Image image)
389</pre>
390
391<p>A description of each parameter follows:</p></ol>
392
393<h5>image</h5>
394<ol><p>the image.</p></ol>
395
396 </div>
397<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
398_8c.html" target="source" name="GetVirtualPixels">GetVirtualPixels</a></h2>
399<div class="doc-section">
400
cristy16ff93c2010-01-13 23:18:07 +0000401<p>GetVirtualPixels() returns an immutable pixel region. If the region is successfully accessed, a pointer to it is returned, otherwise NULL is returned. The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000402
403<p>Pixels accessed via the returned pointer represent a simple array of type PixelPacket. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticIndexQueue() after invoking GetAuthenticPixels() to access the black color component or to obtain the colormap indexes (of type IndexPacket) corresponding to the region.</p></ol>
404
405<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p></ol>
406
407<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe. In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p></ol>
408
409<p>The format of the GetVirtualPixels() method is:</p>
410
411<pre class="code">
cristybb503372010-05-27 20:51:26 +0000412 const PixelPacket *GetVirtualPixels(const Image *image,const ssize_t x,
413 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000414 ExceptionInfo *exception)
415</pre>
416
417<p>A description of each parameter follows:</p></ol>
418
419<h5>image</h5>
420<ol><p>the image.</p></ol>
421
422<h5>x,y,columns,rows</h5>
423<ol><p>These values define the perimeter of a region of pixels.</p></ol>
424
425<h5>exception</h5>
426<ol><p>return any errors or warnings in this structure.</p></ol>
427
428 </div>
429<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
430_8c.html" target="source" name="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
431<div class="doc-section">
432
433<p>QueueAuthenticPixels() queues a mutable pixel region. If the region is successfully intialized a pointer to a PixelPacket array representing the region is returned, otherwise NULL is returned. The returned pointer may point to a temporary working buffer for the pixels or it may point to the final location of the pixels in memory.</p></ol>
434
435<p>Write-only access means that any existing pixel values corresponding to the region are ignored. This is useful if the initial image is being created from scratch, or if the existing pixel values are to be completely replaced without need to refer to their pre-existing values. The application is free to read and write the pixel buffer returned by QueueAuthenticPixels() any way it pleases. QueueAuthenticPixels() does not initialize the pixel array values. Initializing pixel array values is the application's responsibility.</p></ol>
436
cristy16ff93c2010-01-13 23:18:07 +0000437<p>Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p></ol>
cristy3ed852e2009-09-05 21:47:34 +0000438
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 obtain the black color component or the colormap indexes (of type IndexPacket) corresponding to the region. Once the PixelPacket (and/or IndexPacket) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p></ol>
440
441<p>The format of the QueueAuthenticPixels() method is:</p>
442
443<pre class="code">
cristyeaedf062010-05-29 22:36:02 +0000444 PixelPacket *QueueAuthenticPixels(Image *image,const ssize_t x,
445 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000446 ExceptionInfo *exception)
447</pre>
448
449<p>A description of each parameter follows:</p></ol>
450
451<h5>image</h5>
452<ol><p>the image.</p></ol>
453
454<h5>x,y,columns,rows</h5>
455<ol><p>These values define the perimeter of a region of pixels.</p></ol>
456
457<h5>exception</h5>
458<ol><p>return any errors or warnings in this structure.</p></ol>
459
460 </div>
461<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
462_8c.html" target="source" name="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
463<div class="doc-section">
464
465<p>SetPixelCacheVirtualMethod() sets the "virtual pixels" method for the pixel cache and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.</p></ol>
466
467<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
468
469<pre class="code">
470 VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
471 const VirtualPixelMethod virtual_pixel_method)
472</pre>
473
474<p>A description of each parameter follows:</p></ol>
475
476<h5>image</h5>
477<ol><p>the image.</p></ol>
478
479<h5>virtual_pixel_method</h5>
480<ol><p>choose the type of virtual pixel.</p></ol>
481
482 </div>
483<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
484_8c.html" target="source" name="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
485<div class="doc-section">
486
487<p>SyncAuthenticPixels() saves the image pixels to the in-memory or disk cache. The method returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.</p></ol>
488
489<p>The format of the SyncAuthenticPixels() method is:</p>
490
491<pre class="code">
492 MagickBooleanType SyncAuthenticPixels(Image *image,
493 ExceptionInfo *exception)
494</pre>
495
496<p>A description of each parameter follows:</p></ol>
497
498<h5>image</h5>
499<ol><p>the image.</p></ol>
500
501<h5>exception</h5>
502<ol><p>return any errors or warnings in this structure.</p></ol>
503
504 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000505
506</div>
507
508<div id="linkbar">
509 <!-- <span id="linkbar-west">&nbsp;</span> -->
510 <span id="linkbar-center">
511 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristy0d909f12010-06-16 13:12:19 +0000512 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000513 </span>
514 <span id="linkbar-east">&nbsp;</span>
515 </div>
516 <div class="footer">
517 <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
518 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
519 </div>
520 <div style="clear: both; margin: 0; width: 100%; "></div>
521</body>
522</html>