]> granicus.if.org Git - imagemagick/blob - www/api/memory.html
(no commit message)
[imagemagick] / www / api / memory.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" \r
2   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html version="-//W3C//DTD XHTML 1.1//EN"\r
4       xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"\r
5       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
6       xsi:schemaLocation="http://www.w3.org/1999/xhtml\r
7                           http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">\r
8 <head>\r
9   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
10   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
11   <title>ImageMagick: MagickCore, C API for ImageMagick: Memory Allocation</title>
12   <meta http-equiv="Content-Language" content="en-US"/>
13   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
14   <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
15   <meta name="Application-name" content="ImageMagick"/>
16   <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images."/>
17   <meta name="Application-url" content="http://www.imagemagick.org"/>
18   <meta name="Generator" content="PHP"/>
19   <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, memory, allocation, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
20   <meta name="Rating" content="GENERAL"/>
21   <meta name="Robots" content="INDEX, FOLLOW"/>
22   <meta name="Generator" content="ImageMagick Studio LLC"/>
23   <meta name="Author" content="ImageMagick Studio LLC"/>
24   <meta name="Revisit-after" content="2 DAYS"/>
25   <meta name="Resource-type" content="document"/>
26   <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
27   <meta name="Distribution" content="Global"/>
28   <link rel="icon" href="../../images/wand.png"/>
29   <link rel="shortcut icon" href="../../images/wand.ico"  type="images/x-icon"/>
30   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
31   <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />\r
32   <style type="text/css" media="all">\r
33     @import url("../../www/magick.css");\r
34   </style>\r
35   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
36   <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
37   <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
38   <script type="text/javascript">\r
39     $(document).ready(function() {\r
40       $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
41         'transitionIn'  : 'elastic',\r
42         'transitionOut' : 'elastic',\r
43         'overlayShow'   : false,\r
44         'opacity'       : true\r
45       });\r
46     });\r
47   </script>\r
48 </head>\r
49 \r
50 <body id="www-imagemagick-org">\r
51 <div class="titlebar">\r
52 <a href="../../index.html">\r
53   <img src="../../images/script.png" alt="[ImageMagick]"\r
54   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
55 <a href="http://www.networkredux.com">\r
56   <img src="../../images/networkredux.png" alt="[sponsor]"\r
57   style="margin-top: 42px; border: 0px; float: left;" /></a>\r
58 <a href="http://www.imagemagick.org/discourse-server/">\r
59   <img src="../../images/logo.jpg"\r
60   alt="ImageMagick Logo"\r
61   style="width: 123px; height: 118px; border: 0px; float: right;" /></a>\r
62 <a href="../../index.html">\r
63   <img src="../../images/sprite.jpg"\r
64   alt="ImageMagick Sprite"\r
65   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
66 </div>\r
67 \r
68 <div class="westbar">\r
69 \r
70 <div class="menu">
71   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
72 </div>
73 <div class="sep"></div>\r
74 <div class="menu">
75   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
76 </div>
77 <div class="sub">
78     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
79 </div>
80 <div class="sub">
81     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
82 </div>
83 <div class="sub">
84     <a title="Binary Release: iPhone" href="../../www/binary-releases.html#iPhone">iPhone</a>
85 </div>
86 <div class="sub">
87     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
88 </div>
89 <div class="sep"></div>\r
90 <div class="menu">
91   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
92 </div>
93 <div class="sub">
94     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
95 </div>
96 <div class="sub">
97     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
98 </div>
99 <div class="sub">
100     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
101 </div>
102 <div class="menu">
103   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
104 </div>
105 <div class="sub">
106     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
107 </div>
108 <div class="sub">
109     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
110 </div>
111 <div class="sub">
112     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
113 </div>
114 <div class="sub">
115     <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
116 </div>
117 <div class="sep"></div>\r
118 <div  class="menu">
119    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
120 </div>
121 <div class="sub">
122     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
123 </div>
124 <div class="sub">
125     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
126  </div>
127 <div class="menu">
128   <a title="Resources" href="../../www/resources.html">Resources</a>
129 </div>
130 <div class="menu">
131   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
132 </div>
133 <div class="menu">
134   <a title="Download" href="../../www/download.html">Download</a>
135 </div>
136 <div class="sep"></div>\r
137 <div class="menu">
138   <a title="Search" href="../../www/search.html">Search</a>
139 </div>
140 <div class="sep"></div>\r
141 <div class="menu">
142   <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
143 </div>
144 <div  class="sub">
145   <a title="Site Map: Links" href="../../www/links.html">Links</a>
146 </div>
147 <div class="sep"></div>\r
148 <div  class="menu">
149   <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
150
151 <div class="sponsbox">
152 <div  class="sponsor">
153   <a title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
154 </div>
155 <div  class="sponsor">
156   <a title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201106010090 alexanian media -->
157 </div>
158 <div  class="sponsor">
159   <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201107010240 r.leo -->
160 </div>
161 <div  class="sponsor">
162   <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
163 </div>
164 <div  class="sponsor">
165   <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
166 </div>
167 <div  class="sponsor">
168   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
169 </div>
170 <div class="sponsor">
171   <a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
172 </div>
173 <div  class="sponsor">
174   <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
175 </div>
176 <div  class="sponsor">
177    <a title="Sponsor: alaTest.com" href="http://alatest.com">alaTest.com</a><!-- 20110801000300 -->
178 </div>
179 </div>
180 </div>
181 </div>\r
182 \r
183 <div class="eastbar">\r
184   <script type="text/javascript">\r
185   <!--\r
186     google_ad_client = "pub-3129977114552745";\r
187     google_ad_slot = "0574824969";\r
188     google_ad_width = 160;\r
189     google_ad_height = 600;\r
190   //-->\r
191   </script>\r
192   <script type="text/javascript"\r
193     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
194   </script>\r
195 </div>\r
196 \r
197 <div class="main">\r
198 \r
199 <h1>Module memory Methods</h1>
200 <p class="navigation-index">[<a href="#AcquireAlignedMemory">AcquireAlignedMemory</a> &bull; <a href="#AcquireMagickMemory">AcquireMagickMemory</a> &bull; <a href="#AcquireQuantumMemory">AcquireQuantumMemory</a> &bull; <a href="#CopyMagickMemory">CopyMagickMemory</a> &bull; <a href="#GetMagickMemoryMethods">GetMagickMemoryMethods</a> &bull; <a href="#RelinquishAlignedMemory">RelinquishAlignedMemory</a> &bull; <a href="#RelinquishMagickMemory">RelinquishMagickMemory</a> &bull; <a href="#ResetMagickMemory">ResetMagickMemory</a> &bull; <a href="#ResizeMagickMemory">ResizeMagickMemory</a> &bull; <a href="#ResizeQuantumMemory">ResizeQuantumMemory</a> &bull; <a href="#SetMagickMemoryMethods">SetMagickMemoryMethods</a>]</p>
201
202 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="AcquireAlignedMemory">AcquireAlignedMemory</a></h2>
203 <div class="doc-section">
204
205 <p>AcquireAlignedMemory() returns a pointer to a block of memory at least size bytes whose address is a multiple of 16*sizeof(void *).</p>
206
207 <p>The format of the AcquireAlignedMemory method is:</p>
208
209 <pre class="code">
210   void *AcquireAlignedMemory(const size_t count,const size_t quantum)
211 </pre>
212
213 <p>A description of each parameter follows:</p>
214
215 <h5>count</h5>
216 <p>the number of quantum elements to allocate.</p>
217
218 <h5>quantum</h5>
219 <p>the number of bytes in each quantum.</p>
220
221  </div>
222 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="AcquireMagickMemory">AcquireMagickMemory</a></h2>
223 <div class="doc-section">
224
225 <p>AcquireMagickMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.</p>
226
227 <p>The format of the AcquireMagickMemory method is:</p>
228
229 <pre class="code">
230   void *AcquireMagickMemory(const size_t size)
231 </pre>
232
233 <p>A description of each parameter follows:</p>
234
235 <h5>size</h5>
236 <p>the size of the memory in bytes to allocate.</p>
237
238  </div>
239 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="AcquireQuantumMemory">AcquireQuantumMemory</a></h2>
240 <div class="doc-section">
241
242 <p>AcquireQuantumMemory() returns a pointer to a block of memory at least count * quantum bytes suitably aligned for any use.</p>
243
244 <p>The format of the AcquireQuantumMemory method is:</p>
245
246 <pre class="code">
247   void *AcquireQuantumMemory(const size_t count,const size_t quantum)
248 </pre>
249
250 <p>A description of each parameter follows:</p>
251
252 <h5>count</h5>
253 <p>the number of quantum elements to allocate.</p>
254
255 <h5>quantum</h5>
256 <p>the number of bytes in each quantum.</p>
257
258  </div>
259 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="CopyMagickMemory">CopyMagickMemory</a></h2>
260 <div class="doc-section">
261
262 <p>CopyMagickMemory() copies size bytes from memory area source to the destination.  Copying between objects that overlap will take place correctly.  It returns destination.</p>
263
264 <p>The format of the CopyMagickMemory method is:</p>
265
266 <pre class="code">
267   void *CopyMagickMemory(void *destination,const void *source,
268     const size_t size)
269 </pre>
270
271 <p>A description of each parameter follows:</p>
272
273 <h5>destination</h5>
274 <p>the destination.</p>
275
276 <h5>source</h5>
277 <p>the source.</p>
278
279 <h5>size</h5>
280 <p>the size of the memory in bytes to allocate.</p>
281
282  </div>
283 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="GetMagickMemoryMethods">GetMagickMemoryMethods</a></h2>
284 <div class="doc-section">
285
286 <p>GetMagickMemoryMethods() gets the methods to acquire, resize, and destroy memory.</p>
287
288 <p>The format of the GetMagickMemoryMethods() method is:</p>
289
290 <pre class="code">
291   void GetMagickMemoryMethods(AcquireMemoryHandler *acquire_memory_handler,
292     ResizeMemoryHandler *resize_memory_handler,
293     DestroyMemoryHandler *destroy_memory_handler)
294 </pre>
295
296 <p>A description of each parameter follows:</p>
297
298 <h5>acquire_memory_handler</h5>
299 <p>method to acquire memory (e.g. malloc).</p>
300
301 <h5>resize_memory_handler</h5>
302 <p>method to resize memory (e.g. realloc).</p>
303
304 <h5>destroy_memory_handler</h5>
305 <p>method to destroy memory (e.g. free).</p>
306
307  </div>
308 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="RelinquishAlignedMemory">RelinquishAlignedMemory</a></h2>
309 <div class="doc-section">
310
311 <p>RelinquishAlignedMemory() frees memory acquired with AcquireAlignedMemory() or reuse.</p>
312
313 <p>The format of the RelinquishAlignedMemory method is:</p>
314
315 <pre class="code">
316   void *RelinquishAlignedMemory(void *memory)
317 </pre>
318
319 <p>A description of each parameter follows:</p>
320
321 <h5>memory</h5>
322 <p>A pointer to a block of memory to free for reuse.</p>
323
324  </div>
325 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="RelinquishMagickMemory">RelinquishMagickMemory</a></h2>
326 <div class="doc-section">
327
328 <p>RelinquishMagickMemory() frees memory acquired with AcquireMagickMemory() or AcquireQuantumMemory() for reuse.</p>
329
330 <p>The format of the RelinquishMagickMemory method is:</p>
331
332 <pre class="code">
333   void *RelinquishMagickMemory(void *memory)
334 </pre>
335
336 <p>A description of each parameter follows:</p>
337
338 <h5>memory</h5>
339 <p>A pointer to a block of memory to free for reuse.</p>
340
341  </div>
342 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="ResetMagickMemory">ResetMagickMemory</a></h2>
343 <div class="doc-section">
344
345 <p>ResetMagickMemory() fills the first size bytes of the memory area pointed to by memory with the constant byte c.</p>
346
347 <p>The format of the ResetMagickMemory method is:</p>
348
349 <pre class="code">
350   void *ResetMagickMemory(void *memory,int byte,const size_t size)
351 </pre>
352
353 <p>A description of each parameter follows:</p>
354
355 <h5>memory</h5>
356 <p>A pointer to a memory allocation.</p>
357
358 <h5>byte</h5>
359 <p>Set the memory to this value.</p>
360
361 <h5>size</h5>
362 <p>Size of the memory to reset.</p>
363
364  </div>
365 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="ResizeMagickMemory">ResizeMagickMemory</a></h2>
366 <div class="doc-section">
367
368 <p>ResizeMagickMemory() changes the size of the memory and returns a pointer to the (possibly moved) block.  The contents will be unchanged up to the lesser of the new and old sizes.</p>
369
370 <p>The format of the ResizeMagickMemory method is:</p>
371
372 <pre class="code">
373   void *ResizeMagickMemory(void *memory,const size_t size)
374 </pre>
375
376 <p>A description of each parameter follows:</p>
377
378 <h5>memory</h5>
379 <p>A pointer to a memory allocation.</p>
380
381 <h5>size</h5>
382 <p>the new size of the allocated memory.</p>
383
384  </div>
385 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="ResizeQuantumMemory">ResizeQuantumMemory</a></h2>
386 <div class="doc-section">
387
388 <p>ResizeQuantumMemory() changes the size of the memory and returns a pointer to the (possibly moved) block.  The contents will be unchanged up to the lesser of the new and old sizes.</p>
389
390 <p>The format of the ResizeQuantumMemory method is:</p>
391
392 <pre class="code">
393   void *ResizeQuantumMemory(void *memory,const size_t count,
394     const size_t quantum)
395 </pre>
396
397 <p>A description of each parameter follows:</p>
398
399 <h5>memory</h5>
400 <p>A pointer to a memory allocation.</p>
401
402 <h5>count</h5>
403 <p>the number of quantum elements to allocate.</p>
404
405 <h5>quantum</h5>
406 <p>the number of bytes in each quantum.</p>
407
408  </div>
409 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory_8c.html" id="SetMagickMemoryMethods">SetMagickMemoryMethods</a></h2>
410 <div class="doc-section">
411
412 <p>SetMagickMemoryMethods() sets the methods to acquire, resize, and destroy memory.</p>
413
414 <p>The format of the SetMagickMemoryMethods() method is:</p>
415
416 <pre class="code">
417   SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler,
418     ResizeMemoryHandler resize_memory_handler,
419     DestroyMemoryHandler destroy_memory_handler)
420 </pre>
421
422 <p>A description of each parameter follows:</p>
423
424 <h5>acquire_memory_handler</h5>
425 <p>method to acquire memory (e.g. malloc).</p>
426
427 <h5>resize_memory_handler</h5>
428 <p>method to resize memory (e.g. realloc).</p>
429
430 <h5>destroy_memory_handler</h5>
431 <p>method to destroy memory (e.g. free).</p>
432
433  </div>
434 \r
435 </div>\r
436 \r
437 <div id="linkbar">\r
438     <span id="linkbar-west">&nbsp;</span>\r
439     <span id="linkbar-center">\r
440       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
441       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
442     </span>\r
443     <span id="linkbar-east">&nbsp;</span>\r
444   </div>\r
445   <div class="footer">\r
446     <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
447     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
448   </div>\r
449   <div style="clear: both; margin: 0; width: 100%; "></div>\r
450   <script type="text/javascript">\r
451     var _gaq = _gaq || [];\r
452     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
453     _gaq.push(['_trackPageview']);\r
454 \r
455     (function() {\r
456       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
457       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
458       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
459     })();\r
460   </script>\r
461 </body>\r
462 </html>\r