blob: 1b8187de2640b130d0f9c8f8cb3a91f14c558036 [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">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">
cristy3eaa0ef2010-03-06 20:35:26 +00004<head>
cristy3c98a4f2010-08-13 20:09:41 +00005 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +00007 <title>ImageMagick: MagickCore, C API for ImageMagick: Get or Set Image Pixels</title>
cristy3ed852e2009-09-05 21:47:34 +00008 <meta http-equiv="Content-Language" content="en-US"/>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000011 <meta name="Application-name" content="ImageMagick"/>
cristyaf8d6652011-02-04 21:57:45 +000012 <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 +000013 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy3ed852e2009-09-05 21:47:34 +000014 <meta name="Generator" content="PHP"/>
15 <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 +000016 <meta name="Rating" content="GENERAL"/>
17 <meta name="Robots" content="INDEX, FOLLOW"/>
18 <meta name="Generator" content="ImageMagick Studio LLC"/>
19 <meta name="Author" content="ImageMagick Studio LLC"/>
20 <meta name="Revisit-after" content="2 DAYS"/>
21 <meta name="Resource-type" content="document"/>
cristy4103d562010-12-10 01:38:54 +000022 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy3ed852e2009-09-05 21:47:34 +000023 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000024 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000025 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
26 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy7a40ba82011-01-08 20:31:18 +000027 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy3c98a4f2010-08-13 20:09:41 +000028 <style type="text/css" media="all">
29 @import url("../../www/magick.css");
30 </style>
cristydcca3fa2010-12-29 21:50:07 +000031 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000032 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
33 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
34 <script type="text/javascript">
35 $(document).ready(function() {
36 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
37 'transitionIn' : 'elastic',
38 'transitionOut' : 'elastic',
39 'overlayShow' : false,
40 'opacity' : true
41 });
42 });
43 </script>
cristy3eaa0ef2010-03-06 20:35:26 +000044</head>
45
46<body id="www-imagemagick-org">
47<div class="titlebar">
48<a href="../../index.html">
49 <img src="../../images/script.png" alt="[ImageMagick]"
50 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
51<a href="http://www.networkredux.com">
52 <img src="../../images/networkredux.png" alt="[sponsor]"
cristy52923442011-01-15 22:54:31 +000053 style="margin-top: 42px; border: 0px; float: left;" /></a>
cristy3eaa0ef2010-03-06 20:35:26 +000054<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000055 <img src="../../images/logo.jpg"
56 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000057 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy3eaa0ef2010-03-06 20:35:26 +000058<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000059 <img src="../../images/sprite.jpg"
60 alt="ImageMagick Sprite"
cristy3eaa0ef2010-03-06 20:35:26 +000061 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
62</div>
63
cristyce69bb02010-07-27 19:49:46 +000064<div class="westbar">
cristy3eaa0ef2010-03-06 20:35:26 +000065
cristy3ed852e2009-09-05 21:47:34 +000066<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000067 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000068</div>
cristy3eaa0ef2010-03-06 20:35:26 +000069<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000070<div class="menu">
cristybb503372010-05-27 20:51:26 +000071 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
72</div>
73<div class="sub">
74 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
75</div>
76<div class="sub">
77 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
78</div>
79<div class="sub">
80 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
81</div>
82<div class="sep"></div>
83<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000084 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +000085</div>
86<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000087 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +000088</div>
89<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000090 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +000091</div>
92<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000093 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +000094</div>
95<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000096 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +000097</div>
98<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000099 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +0000100</div>
101<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000102 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +0000103</div>
104<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000105 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +0000106</div>
107<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000108 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</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="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +0000113</div>
114<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000115 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000116</div>
117<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000118 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000119 </div>
120<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000121 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000122</div>
cristybb503372010-05-27 20:51:26 +0000123<div class="menu">
124 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
125</div>
cristy3ed852e2009-09-05 21:47:34 +0000126<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000127 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000128</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000129<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000130<div class="menu">
cristy52923442011-01-15 22:54:31 +0000131 <a title="Search" href="../../www/search.html">Search</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">
cristyffb69ed2010-12-25 00:06:48 +0000135 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000136</div>
137<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000138 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000139</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000140<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000141<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000142 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000143
144<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000145<div class="sponsor">
cristyaf8d6652011-02-04 21:57:45 +0000146 <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
147</div>
148<div class="sponsor">
149 <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
150</div>
151<div class="sponsor">
cristy178edaf2011-01-23 03:42:39 +0000152 <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201106010240 -->
153</div>
cristyec6b4752011-01-08 03:16:23 +0000154<div class="sponsor">
cristy52923442011-01-15 22:54:31 +0000155 <a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
cristy7d52cd62010-10-01 17:26:59 +0000156</div>
157<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000158 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
159</div>
160<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000161 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
162</div>
cristyec6b4752011-01-08 03:16:23 +0000163<div class="sponsor">
cristy178edaf2011-01-23 03:42:39 +0000164 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
165</div>
166<div class="sponsor">
cristyaf8d6652011-02-04 21:57:45 +0000167 <a title="Sponsor: Fernsehdienst Berlin" href="http://www.atlas-multimedia.de">Fernsehdienst Berlin</a><!-- 2011050100025 atlas.multimedia-->
cristyec6b4752011-01-08 03:16:23 +0000168</div>
cristy3ed852e2009-09-05 21:47:34 +0000169</div>
170</div>
cristyce69bb02010-07-27 19:49:46 +0000171</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000172
cristyce69bb02010-07-27 19:49:46 +0000173<div class="eastbar">
174 <script type="text/javascript">
175 <!--
176 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000177 google_ad_slot = "0574824969";
178 google_ad_width = 160;
179 google_ad_height = 600;
180 //-->
181 </script>
182 <script type="text/javascript"
183 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
184 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000185</div>
186
187<div class="main">
188
cristy307ba182010-12-25 01:00:34 +0000189<h1>Module cache
190 Methods</h1>
cristy3ed852e2009-09-05 21:47:34 +0000191<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>
192
cristy70b59b62011-02-07 19:09:57 +0000193<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000194_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000195<div class="doc-section">
196
cristy7a40ba82011-01-08 20:31:18 +0000197<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000198
199<p>The format of the AcquirePixelCacheNexus method is:</p>
200
201<pre class="code">
cristybb503372010-05-27 20:51:26 +0000202 NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
cristy3ed852e2009-09-05 21:47:34 +0000203</pre>
204
cristy7a40ba82011-01-08 20:31:18 +0000205<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000206
207<h5>number_threads</h5>
cristy7a40ba82011-01-08 20:31:18 +0000208<p>the number of nexus threads.</p>
cristy3ed852e2009-09-05 21:47:34 +0000209
210 </div>
cristy70b59b62011-02-07 19:09:57 +0000211<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000212_8c.html" id="GetAuthenticIndexQueue">GetAuthenticIndexQueue</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000213<div class="doc-section">
214
cristy7a40ba82011-01-08 20:31:18 +0000215<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>
cristy3ed852e2009-09-05 21:47:34 +0000216
217<p>The format of the GetAuthenticIndexQueue() method is:</p>
218
219<pre class="code">
220 IndexPacket *GetAuthenticIndexQueue(const Image *image)
221</pre>
222
cristy7a40ba82011-01-08 20:31:18 +0000223<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000224
225<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000226<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000227
228 </div>
cristy70b59b62011-02-07 19:09:57 +0000229<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000230_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000231<div class="doc-section">
232
cristy7a40ba82011-01-08 20:31:18 +0000233<p>GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
cristy3ed852e2009-09-05 21:47:34 +0000234
235<p>The format of the GetAuthenticPixelQueue() method is:</p>
236
237<pre class="code">
238 PixelPacket *GetAuthenticPixelQueue(const Image image)
239</pre>
240
cristy7a40ba82011-01-08 20:31:18 +0000241<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000242
243<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000244<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000245
246 </div>
cristy70b59b62011-02-07 19:09:57 +0000247<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000248_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000249<div class="doc-section">
250
cristy7a40ba82011-01-08 20:31:18 +0000251<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>
cristy3ed852e2009-09-05 21:47:34 +0000252
cristy7a40ba82011-01-08 20:31:18 +0000253<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>
cristy3ed852e2009-09-05 21:47:34 +0000254
cristy7a40ba82011-01-08 20:31:18 +0000255<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>
cristy3ed852e2009-09-05 21:47:34 +0000256
257<p>The format of the GetAuthenticPixels() method is:</p>
258
259<pre class="code">
cristyeaedf062010-05-29 22:36:02 +0000260 PixelPacket *GetAuthenticPixels(Image *image,const ssize_t x,
261 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000262 ExceptionInfo *exception)
263</pre>
264
cristy7a40ba82011-01-08 20:31:18 +0000265<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000266
267<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000268<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000269
270<h5>x,y,columns,rows</h5>
cristy7a40ba82011-01-08 20:31:18 +0000271<p>These values define the perimeter of a region of pixels.</p>
cristy3ed852e2009-09-05 21:47:34 +0000272
273<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000274<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000275
276 </div>
cristy70b59b62011-02-07 19:09:57 +0000277<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000278_8c.html" id="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000279<div class="doc-section">
280
cristy7a40ba82011-01-08 20:31:18 +0000281<p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.</p>
cristy3ed852e2009-09-05 21:47:34 +0000282
283<p>The format of the GetOneAuthenticPixel() method is:</p>
284
285<pre class="code">
cristybb503372010-05-27 20:51:26 +0000286 MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
287 const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
cristy3ed852e2009-09-05 21:47:34 +0000288</pre>
289
cristy7a40ba82011-01-08 20:31:18 +0000290<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000291
292<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000293<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000294
295<h5>x,y</h5>
cristy7a40ba82011-01-08 20:31:18 +0000296<p>These values define the location of the pixel to return.</p>
cristy3ed852e2009-09-05 21:47:34 +0000297
298<h5>pixel</h5>
cristy7a40ba82011-01-08 20:31:18 +0000299<p>return a pixel at the specified (x,y) location.</p>
cristy3ed852e2009-09-05 21:47:34 +0000300
301<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000302<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000303
304 </div>
cristy70b59b62011-02-07 19:09:57 +0000305<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000306_8c.html" id="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000307<div class="doc-section">
308
cristy7a40ba82011-01-08 20:31:18 +0000309<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>
cristy3ed852e2009-09-05 21:47:34 +0000310
311<p>The format of the GetOneVirtualMagickPixel() method is:</p>
312
313<pre class="code">
314 MagickBooleanType GetOneVirtualMagickPixel(const Image image,
cristybb503372010-05-27 20:51:26 +0000315 const ssize_t x,const ssize_t y,MagickPixelPacket *pixel,
cristy3ed852e2009-09-05 21:47:34 +0000316 ExceptionInfo exception)
317</pre>
318
cristy7a40ba82011-01-08 20:31:18 +0000319<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000320
321<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000322<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000323
324<h5>x,y</h5>
cristy7a40ba82011-01-08 20:31:18 +0000325<p>these values define the location of the pixel to return.</p>
cristy3ed852e2009-09-05 21:47:34 +0000326
327<h5>pixel</h5>
cristy7a40ba82011-01-08 20:31:18 +0000328<p>return a pixel at the specified (x,y) location.</p>
cristy3ed852e2009-09-05 21:47:34 +0000329
330<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000331<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000332
333 </div>
cristy70b59b62011-02-07 19:09:57 +0000334<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000335_8c.html" id="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000336<div class="doc-section">
337
cristy7a40ba82011-01-08 20:31:18 +0000338<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>
cristy3ed852e2009-09-05 21:47:34 +0000339
340<p>The format of the GetOneVirtualMethodPixel() method is:</p>
341
342<pre class="code">
343 MagickBooleanType GetOneVirtualMethodPixel(const Image image,
cristybb503372010-05-27 20:51:26 +0000344 const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
345 const ssize_t y,Pixelpacket *pixel,ExceptionInfo exception)
cristy3ed852e2009-09-05 21:47:34 +0000346</pre>
347
cristy7a40ba82011-01-08 20:31:18 +0000348<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000349
350<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000351<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000352
353<h5>virtual_pixel_method</h5>
cristy7a40ba82011-01-08 20:31:18 +0000354<p>the virtual pixel method.</p>
cristy3ed852e2009-09-05 21:47:34 +0000355
356<h5>x,y</h5>
cristy7a40ba82011-01-08 20:31:18 +0000357<p>These values define the location of the pixel to return.</p>
cristy3ed852e2009-09-05 21:47:34 +0000358
359<h5>pixel</h5>
cristy7a40ba82011-01-08 20:31:18 +0000360<p>return a pixel at the specified (x,y) location.</p>
cristy3ed852e2009-09-05 21:47:34 +0000361
362<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000363<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000364
365 </div>
cristy70b59b62011-02-07 19:09:57 +0000366<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000367_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000368<div class="doc-section">
369
cristy7a40ba82011-01-08 20:31:18 +0000370<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>
cristy3ed852e2009-09-05 21:47:34 +0000371
372<p>The format of the GetOneVirtualPixel() method is:</p>
373
374<pre class="code">
cristybb503372010-05-27 20:51:26 +0000375 MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
376 const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
cristy3ed852e2009-09-05 21:47:34 +0000377</pre>
378
cristy7a40ba82011-01-08 20:31:18 +0000379<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000380
381<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000382<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000383
384<h5>x,y</h5>
cristy7a40ba82011-01-08 20:31:18 +0000385<p>These values define the location of the pixel to return.</p>
cristy3ed852e2009-09-05 21:47:34 +0000386
387<h5>pixel</h5>
cristy7a40ba82011-01-08 20:31:18 +0000388<p>return a pixel at the specified (x,y) location.</p>
cristy3ed852e2009-09-05 21:47:34 +0000389
390<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000391<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000392
393 </div>
cristy70b59b62011-02-07 19:09:57 +0000394<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000395_8c.html" id="GetVirtualIndexQueue">GetVirtualIndexQueue</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000396<div class="doc-section">
397
cristy7a40ba82011-01-08 20:31:18 +0000398<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>
cristy3ed852e2009-09-05 21:47:34 +0000399
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
cristy7a40ba82011-01-08 20:31:18 +0000406<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000407
408<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000409<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000410
411 </div>
cristy70b59b62011-02-07 19:09:57 +0000412<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000413_8c.html" id="VirtualPixelModulo">VirtualPixelModulo</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000414<div class="doc-section">
415
416<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>
417 </div>
cristy70b59b62011-02-07 19:09:57 +0000418<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000419_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000420<div class="doc-section">
421
cristy7a40ba82011-01-08 20:31:18 +0000422<p>GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
cristy3ed852e2009-09-05 21:47:34 +0000423
424<p>The format of the GetVirtualPixelQueue() method is:</p>
425
426<pre class="code">
427 const PixelPacket *GetVirtualPixelQueue(const Image image)
428</pre>
429
cristy7a40ba82011-01-08 20:31:18 +0000430<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000431
432<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000433<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000434
435 </div>
cristy70b59b62011-02-07 19:09:57 +0000436<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000437_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000438<div class="doc-section">
439
cristy7a40ba82011-01-08 20:31:18 +0000440<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>
cristy3ed852e2009-09-05 21:47:34 +0000441
cristy7a40ba82011-01-08 20:31:18 +0000442<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>
cristy3ed852e2009-09-05 21:47:34 +0000443
cristy7a40ba82011-01-08 20:31:18 +0000444<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
cristy3ed852e2009-09-05 21:47:34 +0000445
cristy7a40ba82011-01-08 20:31:18 +0000446<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe. In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
cristy3ed852e2009-09-05 21:47:34 +0000447
448<p>The format of the GetVirtualPixels() method is:</p>
449
450<pre class="code">
cristybb503372010-05-27 20:51:26 +0000451 const PixelPacket *GetVirtualPixels(const Image *image,const ssize_t x,
452 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000453 ExceptionInfo *exception)
454</pre>
455
cristy7a40ba82011-01-08 20:31:18 +0000456<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000457
458<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000459<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000460
461<h5>x,y,columns,rows</h5>
cristy7a40ba82011-01-08 20:31:18 +0000462<p>These values define the perimeter of a region of pixels.</p>
cristy3ed852e2009-09-05 21:47:34 +0000463
464<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000465<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000466
467 </div>
cristy70b59b62011-02-07 19:09:57 +0000468<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000469_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000470<div class="doc-section">
471
cristy7a40ba82011-01-08 20:31:18 +0000472<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>
cristy3ed852e2009-09-05 21:47:34 +0000473
cristy7a40ba82011-01-08 20:31:18 +0000474<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>
cristy3ed852e2009-09-05 21:47:34 +0000475
cristy7a40ba82011-01-08 20:31:18 +0000476<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>
cristy3ed852e2009-09-05 21:47:34 +0000477
cristy7a40ba82011-01-08 20:31:18 +0000478<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>
cristy3ed852e2009-09-05 21:47:34 +0000479
480<p>The format of the QueueAuthenticPixels() method is:</p>
481
482<pre class="code">
cristyeaedf062010-05-29 22:36:02 +0000483 PixelPacket *QueueAuthenticPixels(Image *image,const ssize_t x,
484 const ssize_t y,const size_t columns,const size_t rows,
cristy3ed852e2009-09-05 21:47:34 +0000485 ExceptionInfo *exception)
486</pre>
487
cristy7a40ba82011-01-08 20:31:18 +0000488<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000489
490<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000491<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000492
493<h5>x,y,columns,rows</h5>
cristy7a40ba82011-01-08 20:31:18 +0000494<p>These values define the perimeter of a region of pixels.</p>
cristy3ed852e2009-09-05 21:47:34 +0000495
496<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000497<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000498
499 </div>
cristy70b59b62011-02-07 19:09:57 +0000500<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000501_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000502<div class="doc-section">
503
cristy7a40ba82011-01-08 20:31:18 +0000504<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>
cristy3ed852e2009-09-05 21:47:34 +0000505
506<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
507
508<pre class="code">
509 VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
510 const VirtualPixelMethod virtual_pixel_method)
511</pre>
512
cristy7a40ba82011-01-08 20:31:18 +0000513<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000514
515<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000516<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000517
518<h5>virtual_pixel_method</h5>
cristy7a40ba82011-01-08 20:31:18 +0000519<p>choose the type of virtual pixel.</p>
cristy3ed852e2009-09-05 21:47:34 +0000520
521 </div>
cristy70b59b62011-02-07 19:09:57 +0000522<h2><a href="http://www.imagemagick.org/api/MagickCore/cache
cristy7a40ba82011-01-08 20:31:18 +0000523_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
cristy3ed852e2009-09-05 21:47:34 +0000524<div class="doc-section">
525
cristy7a40ba82011-01-08 20:31:18 +0000526<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>
cristy3ed852e2009-09-05 21:47:34 +0000527
528<p>The format of the SyncAuthenticPixels() method is:</p>
529
530<pre class="code">
531 MagickBooleanType SyncAuthenticPixels(Image *image,
532 ExceptionInfo *exception)
533</pre>
534
cristy7a40ba82011-01-08 20:31:18 +0000535<p>A description of each parameter follows:</p>
cristy3ed852e2009-09-05 21:47:34 +0000536
537<h5>image</h5>
cristy7a40ba82011-01-08 20:31:18 +0000538<p>the image.</p>
cristy3ed852e2009-09-05 21:47:34 +0000539
540<h5>exception</h5>
cristy7a40ba82011-01-08 20:31:18 +0000541<p>return any errors or warnings in this structure.</p>
cristy3ed852e2009-09-05 21:47:34 +0000542
543 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000544
545</div>
546
547<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000548 <span id="linkbar-west">&nbsp;</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000549 <span id="linkbar-center">
550 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000551 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000552 </span>
553 <span id="linkbar-east">&nbsp;</span>
554 </div>
555 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000556 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000557 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
558 </div>
559 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000560 <script type="text/javascript">
561 var _gaq = _gaq || [];
562 _gaq.push(['_setAccount', 'UA-17690367-1']);
563 _gaq.push(['_trackPageview']);
564
565 (function() {
566 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
567 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
568 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
569 })();
570 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000571</body>
572</html>