blob: 0276f4ae0df49def152bdf4d783671036912474e [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"/>
cristye6e84152011-06-06 14:16:49 +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 automagically."/>
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"/>
cristye6e84152011-06-06 14:16:49 +000019 <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, Image, Processing, Automagically"/>
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"/>
cristy29c5c992011-06-25 13:58:49 +000030 <link rel="canonical" href="http://www.imagemagick.org" />
cristy3c98a4f2010-08-13 20:09:41 +000031 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
cristy7a40ba82011-01-08 20:31:18 +000032 <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
cristy29c5c992011-06-25 13:58:49 +000033 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
cristy3c98a4f2010-08-13 20:09:41 +000034 <style type="text/css" media="all">
35 @import url("../../www/magick.css");
36 </style>
cristy29c5c992011-06-25 13:58:49 +000037 <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
cristydcca3fa2010-12-29 21:50:07 +000038 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
cristy361f4662010-12-31 23:02:52 +000039 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
cristy361f4662010-12-31 23:02:52 +000040 <script type="text/javascript">
41 $(document).ready(function() {
42 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
43 'transitionIn' : 'elastic',
44 'transitionOut' : 'elastic',
45 'overlayShow' : false,
46 'opacity' : true
47 });
48 });
49 </script>
cristy3eaa0ef2010-03-06 20:35:26 +000050</head>
51
52<body id="www-imagemagick-org">
53<div class="titlebar">
cristyb52981c2011-03-19 17:09:31 +000054<div style="margin: 17px auto; float: left;">
55 <script type="text/javascript">
56 <!--
57 google_ad_client = "pub-3129977114552745";
58 google_ad_slot = "5439289906";
59 google_ad_width = 728;
60 google_ad_height = 90;
61 //-->
62 </script>
63 <script type="text/javascript"
64 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
65 </script>
66</div>
cristy3eaa0ef2010-03-06 20:35:26 +000067<a href="http://www.imagemagick.org/discourse-server/">
cristyaf8d6652011-02-04 21:57:45 +000068 <img src="../../images/logo.jpg"
69 alt="ImageMagick Logo"
cristy178edaf2011-01-23 03:42:39 +000070 style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
cristy3eaa0ef2010-03-06 20:35:26 +000071<a href="../../index.html">
cristyaf8d6652011-02-04 21:57:45 +000072 <img src="../../images/sprite.jpg"
73 alt="ImageMagick Sprite"
cristy3eaa0ef2010-03-06 20:35:26 +000074 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
75</div>
76
cristyce69bb02010-07-27 19:49:46 +000077<div class="westbar">
cristy3eaa0ef2010-03-06 20:35:26 +000078
cristy3ed852e2009-09-05 21:47:34 +000079<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000080 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000081</div>
cristy3ed852e2009-09-05 21:47:34 +000082<div class="menu">
cristybb503372010-05-27 20:51:26 +000083 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
84</div>
85<div class="sub">
86 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
87</div>
88<div class="sub">
89 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
90</div>
91<div class="sub">
cristye6e84152011-06-06 14:16:49 +000092 <a title="Binary Release: iOS" href="../../www/binary-releases.html#iOS">iOS</a>
cristyda16f162011-02-19 23:52:17 +000093</div>
94<div class="sub">
cristybb503372010-05-27 20:51:26 +000095 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
96</div>
97<div class="sep"></div>
98<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000099 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +0000100</div>
101<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000102 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +0000103</div>
104<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000105 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +0000106</div>
107<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000108 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +0000109</div>
110<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000111 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +0000112</div>
113<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000114 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +0000115</div>
116<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000117 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +0000118</div>
119<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000120 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +0000121</div>
122<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000123 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +0000124</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000125<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000126<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000127 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +0000128</div>
129<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000130 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000131</div>
132<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000133 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000134 </div>
135<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000136 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000137</div>
cristybb503372010-05-27 20:51:26 +0000138<div class="menu">
139 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
140</div>
cristy3ed852e2009-09-05 21:47:34 +0000141<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000142 <a title="Download" href="../../www/download.html">Download</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">
cristy52923442011-01-15 22:54:31 +0000146 <a title="Search" href="../../www/search.html">Search</a>
cristy3ed852e2009-09-05 21:47:34 +0000147</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000148<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000149<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000150 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000151</div>
152<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000153 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000154</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000155<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000156<div class="menu">
cristy10549a12011-05-15 19:04:46 +0000157 <a rel="follow" title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000158
cristyb52981c2011-03-19 17:09:31 +0000159<a href="http://www.networkredux.com">
160 <img src="../../images/networkredux.png" alt="[sponsor]"
161 style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
cristy3ed852e2009-09-05 21:47:34 +0000162<div class="sponsbox">
cristy178edaf2011-01-23 03:42:39 +0000163<div class="sponsor">
cristy81492d62011-06-07 16:41:42 +0000164 <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
165</div>
166<div class="sponsor">
cristy84134182011-06-15 22:59:00 +0000167 <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
168</div>
169<div class="sponsor">
cristy81492d62011-06-07 16:41:42 +0000170 <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
171</div>
172<div class="sponsor">
cristyba1758d2011-06-03 01:29:12 +0000173 <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
174</div>
175<div class="sponsor">
176 <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
177</div>
178<div class="sponsor">
cristy4bf6e232011-05-21 01:43:33 +0000179 <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
cristy45dbd322011-03-27 16:40:38 +0000180</div>
181<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000182 <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
cristy4c54bbb2011-03-17 13:53:13 +0000183</div>
184<div class="sponsor">
cristy575d5ee2011-05-24 01:59:01 +0000185 <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
cristy4bf6e232011-05-21 01:43:33 +0000186</div>
187<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000188 <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
cristyaf8d6652011-02-04 21:57:45 +0000189</div>
190<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000191 <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
cristy7d52cd62010-10-01 17:26:59 +0000192</div>
193<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000194 <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
cristyee742642011-02-26 02:49:59 +0000195</div>
196<div class="sponsor">
cristy10549a12011-05-15 19:04:46 +0000197 <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
cristybaacd172011-04-30 23:11:03 +0000198</div>
199<div class="sponsor">
cristyd48f07c2011-07-09 23:09:26 +0000200 <a rel="follow" title="Sponsor: Notebook Reparatur" href="http://www.atlasmultimedia.de">Notebook Reparatur</a><!-- 2011100100025 atlas.multimedia-->
cristyec6b4752011-01-08 03:16:23 +0000201</div>
cristy3ed852e2009-09-05 21:47:34 +0000202</div>
203</div>
cristyce69bb02010-07-27 19:49:46 +0000204</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000205
cristyce69bb02010-07-27 19:49:46 +0000206<div class="eastbar">
cristy29c5c992011-06-25 13:58:49 +0000207<div style="margin: 9pt 9pt 9pt 9pt;">
208 <div class="g-plusone" data-size="standard" data-count="false"></div>
209</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000210</div>
211
212<div class="main">
213
cristy350dea42011-02-15 17:31:04 +0000214<h1>Module cache Methods</h1>
cristya4dfb122011-07-07 19:01:57 +0000215<p class="navigation-index">[<a href="#AcquirePixelCacheNexus">AcquirePixelCacheNexus</a> &bull; <a href="#GetAuthenticMetacontent">GetAuthenticMetacontent</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="#GetVirtualMetacontent">GetVirtualMetacontent</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 +0000216
cristy350dea42011-02-15 17:31:04 +0000217<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000218<div class="doc-section">
219
220<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
221
222<p>The format of the AcquirePixelCacheNexus method is:</p>
223
224<pre class="code">
225 NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
226</pre>
227
228<p>A description of each parameter follows:</p>
229
230<h5>number_threads</h5>
231<p>the number of nexus threads.</p>
232
233 </div>
cristya4dfb122011-07-07 19:01:57 +0000234<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticMetacontent">GetAuthenticMetacontent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000235<div class="doc-section">
236
cristya4dfb122011-07-07 19:01:57 +0000237<p>GetAuthenticMetacontent() returns the authentic metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the associated pixels are not available.</p>
cristy6f77f692011-02-15 15:31:39 +0000238
cristya4dfb122011-07-07 19:01:57 +0000239<p>The format of the GetAuthenticMetacontent() method is:</p>
cristy6f77f692011-02-15 15:31:39 +0000240
241<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000242 void *GetAuthenticMetacontent(const Image *image)
cristy6f77f692011-02-15 15:31:39 +0000243</pre>
244
245<p>A description of each parameter follows:</p>
246
247<h5>image</h5>
248<p>the image.</p>
249
250 </div>
cristy350dea42011-02-15 17:31:04 +0000251<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000252<div class="doc-section">
253
cristya4dfb122011-07-07 19:01:57 +0000254<p>GetAuthenticPixelQueue() returns the authentic pixels associated corresponding with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
cristy6f77f692011-02-15 15:31:39 +0000255
256<p>The format of the GetAuthenticPixelQueue() method is:</p>
257
258<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000259 Quantum *GetAuthenticPixelQueue(const Image image)
cristy6f77f692011-02-15 15:31:39 +0000260</pre>
261
262<p>A description of each parameter follows:</p>
263
264<h5>image</h5>
265<p>the image.</p>
266
267 </div>
cristy350dea42011-02-15 17:31:04 +0000268<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000269<div class="doc-section">
270
cristya4dfb122011-07-07 19:01:57 +0000271<p>GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a Quantum array representing the region is returned, otherwise NULL is returned.</p>
cristy6f77f692011-02-15 15:31:39 +0000272
273<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>
274
cristya4dfb122011-07-07 19:01:57 +0000275<p>Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image has corresponding metacontent,call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content corresponding to the region. Once the Quantum array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p>
cristy6f77f692011-02-15 15:31:39 +0000276
277<p>The format of the GetAuthenticPixels() method is:</p>
278
279<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000280 Quantum *GetAuthenticPixels(Image *image,const ssize_t x,
cristy6f77f692011-02-15 15:31:39 +0000281 const ssize_t y,const size_t columns,const size_t rows,
282 ExceptionInfo *exception)
283</pre>
284
285<p>A description of each parameter follows:</p>
286
287<h5>image</h5>
288<p>the image.</p>
289
290<h5>x,y,columns,rows</h5>
291<p>These values define the perimeter of a region of pixels.</p>
292
293<h5>exception</h5>
294<p>return any errors or warnings in this structure.</p>
295
296 </div>
cristy350dea42011-02-15 17:31:04 +0000297<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000298<div class="doc-section">
299
300<p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.</p>
301
302<p>The format of the GetOneAuthenticPixel() method is:</p>
303
304<pre class="code">
305 MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
306 const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
307</pre>
308
309<p>A description of each parameter follows:</p>
310
311<h5>image</h5>
312<p>the image.</p>
313
314<h5>x,y</h5>
315<p>These values define the location of the pixel to return.</p>
316
317<h5>pixel</h5>
318<p>return a pixel at the specified (x,y) location.</p>
319
320<h5>exception</h5>
321<p>return any errors or warnings in this structure.</p>
322
323 </div>
cristy350dea42011-02-15 17:31:04 +0000324<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualMagickPixel">GetOneVirtualMagickPixel</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000325<div class="doc-section">
326
327<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>
328
329<p>The format of the GetOneVirtualMagickPixel() method is:</p>
330
331<pre class="code">
332 MagickBooleanType GetOneVirtualMagickPixel(const Image image,
cristya4dfb122011-07-07 19:01:57 +0000333 const ssize_t x,const ssize_t y,PixelInfo *pixel,
cristy6f77f692011-02-15 15:31:39 +0000334 ExceptionInfo exception)
335</pre>
336
337<p>A description of each parameter follows:</p>
338
339<h5>image</h5>
340<p>the image.</p>
341
342<h5>x,y</h5>
343<p>these values define the location of the pixel to return.</p>
344
345<h5>pixel</h5>
346<p>return a pixel at the specified (x,y) location.</p>
347
348<h5>exception</h5>
349<p>return any errors or warnings in this structure.</p>
350
351 </div>
cristy350dea42011-02-15 17:31:04 +0000352<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualMethodPixel">GetOneVirtualMethodPixel</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000353<div class="doc-section">
354
355<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>
356
357<p>The format of the GetOneVirtualMethodPixel() method is:</p>
358
359<pre class="code">
360 MagickBooleanType GetOneVirtualMethodPixel(const Image image,
361 const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
cristya4dfb122011-07-07 19:01:57 +0000362 const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
cristy6f77f692011-02-15 15:31:39 +0000363</pre>
364
365<p>A description of each parameter follows:</p>
366
367<h5>image</h5>
368<p>the image.</p>
369
370<h5>virtual_pixel_method</h5>
371<p>the virtual pixel method.</p>
372
373<h5>x,y</h5>
374<p>These values define the location of the pixel to return.</p>
375
376<h5>pixel</h5>
377<p>return a pixel at the specified (x,y) location.</p>
378
379<h5>exception</h5>
380<p>return any errors or warnings in this structure.</p>
381
382 </div>
cristy350dea42011-02-15 17:31:04 +0000383<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000384<div class="doc-section">
385
386<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>
387
388<p>The format of the GetOneVirtualPixel() method is:</p>
389
390<pre class="code">
391 MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
392 const ssize_t y,PixelPacket *pixel,ExceptionInfo exception)
393</pre>
394
395<p>A description of each parameter follows:</p>
396
397<h5>image</h5>
398<p>the image.</p>
399
400<h5>x,y</h5>
401<p>These values define the location of the pixel to return.</p>
402
403<h5>pixel</h5>
404<p>return a pixel at the specified (x,y) location.</p>
405
406<h5>exception</h5>
407<p>return any errors or warnings in this structure.</p>
408
409 </div>
cristya4dfb122011-07-07 19:01:57 +0000410<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualMetacontent">GetVirtualMetacontent</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000411<div class="doc-section">
412
cristya4dfb122011-07-07 19:01:57 +0000413<p>GetVirtualMetacontent() returns the virtual metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the meta-content are not available.</p>
cristy6f77f692011-02-15 15:31:39 +0000414
cristya4dfb122011-07-07 19:01:57 +0000415<p>The format of the GetVirtualMetacontent() method is:</p>
cristy6f77f692011-02-15 15:31:39 +0000416
417<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000418 const void *GetVirtualMetacontent(const Image *image)
cristy6f77f692011-02-15 15:31:39 +0000419</pre>
420
421<p>A description of each parameter follows:</p>
422
423<h5>image</h5>
424<p>the image.</p>
425
426 </div>
cristy350dea42011-02-15 17:31:04 +0000427<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="VirtualPixelModulo">VirtualPixelModulo</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000428<div class="doc-section">
429
430<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>
431 </div>
cristy350dea42011-02-15 17:31:04 +0000432<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000433<div class="doc-section">
434
cristya4dfb122011-07-07 19:01:57 +0000435<p>GetVirtualPixelQueue() returns the virtual pixels associated corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
cristy6f77f692011-02-15 15:31:39 +0000436
437<p>The format of the GetVirtualPixelQueue() method is:</p>
438
439<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000440 const Quantum *GetVirtualPixelQueue(const Image image)
cristy6f77f692011-02-15 15:31:39 +0000441</pre>
442
443<p>A description of each parameter follows:</p>
444
445<h5>image</h5>
446<p>the image.</p>
447
448 </div>
cristy350dea42011-02-15 17:31:04 +0000449<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000450<div class="doc-section">
451
452<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>
453
cristya4dfb122011-07-07 19:01:57 +0000454<p>Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to access the meta-content (of type void) corresponding to the the region.</p>
cristy6f77f692011-02-15 15:31:39 +0000455
456<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
457
458<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe. In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
459
460<p>The format of the GetVirtualPixels() method is:</p>
461
462<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000463 const Quantum *GetVirtualPixels(const Image *image,const ssize_t x,
cristy6f77f692011-02-15 15:31:39 +0000464 const ssize_t y,const size_t columns,const size_t rows,
465 ExceptionInfo *exception)
466</pre>
467
468<p>A description of each parameter follows:</p>
469
470<h5>image</h5>
471<p>the image.</p>
472
473<h5>x,y,columns,rows</h5>
474<p>These values define the perimeter of a region of pixels.</p>
475
476<h5>exception</h5>
477<p>return any errors or warnings in this structure.</p>
478
479 </div>
cristy350dea42011-02-15 17:31:04 +0000480<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000481<div class="doc-section">
482
cristya4dfb122011-07-07 19:01:57 +0000483<p>QueueAuthenticPixels() queues a mutable pixel region. If the region is successfully initialized a pointer to a Quantum 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>
cristy6f77f692011-02-15 15:31:39 +0000484
485<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>
486
487<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>
488
cristya4dfb122011-07-07 19:01:57 +0000489<p>Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content (of type void) corresponding to the region. Once the Quantum (and/or Quantum) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p>
cristy6f77f692011-02-15 15:31:39 +0000490
491<p>The format of the QueueAuthenticPixels() method is:</p>
492
493<pre class="code">
cristya4dfb122011-07-07 19:01:57 +0000494 Quantum *QueueAuthenticPixels(Image *image,const ssize_t x,
cristy6f77f692011-02-15 15:31:39 +0000495 const ssize_t y,const size_t columns,const size_t rows,
496 ExceptionInfo *exception)
497</pre>
498
499<p>A description of each parameter follows:</p>
500
501<h5>image</h5>
502<p>the image.</p>
503
504<h5>x,y,columns,rows</h5>
505<p>These values define the perimeter of a region of pixels.</p>
506
507<h5>exception</h5>
508<p>return any errors or warnings in this structure.</p>
509
510 </div>
cristy350dea42011-02-15 17:31:04 +0000511<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000512<div class="doc-section">
513
514<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>
515
516<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
517
518<pre class="code">
519 VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
520 const VirtualPixelMethod virtual_pixel_method)
521</pre>
522
523<p>A description of each parameter follows:</p>
524
525<h5>image</h5>
526<p>the image.</p>
527
528<h5>virtual_pixel_method</h5>
529<p>choose the type of virtual pixel.</p>
530
531 </div>
cristy350dea42011-02-15 17:31:04 +0000532<h2><a href="http://www.imagemagick.org/api/MagickCore/cache_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
cristy6f77f692011-02-15 15:31:39 +0000533<div class="doc-section">
534
535<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>
536
537<p>The format of the SyncAuthenticPixels() method is:</p>
538
539<pre class="code">
540 MagickBooleanType SyncAuthenticPixels(Image *image,
541 ExceptionInfo *exception)
542</pre>
543
544<p>A description of each parameter follows:</p>
545
546<h5>image</h5>
547<p>the image.</p>
548
549<h5>exception</h5>
550<p>return any errors or warnings in this structure.</p>
551
552 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000553
554</div>
555
556<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000557 <span id="linkbar-west">&nbsp;</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000558 <span id="linkbar-center">
559 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000560 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000561 </span>
562 <span id="linkbar-east">&nbsp;</span>
563 </div>
564 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000565 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000566 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
567 </div>
568 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000569 <script type="text/javascript">
570 var _gaq = _gaq || [];
571 _gaq.push(['_setAccount', 'UA-17690367-1']);
572 _gaq.push(['_trackPageview']);
573
574 (function() {
575 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
576 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
577 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
578 })();
579 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000580</body>
581</html>