]> 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.0 Strict//EN"\r
2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">\r
4 <head>\r
5   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
6   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
7   <title>ImageMagick: MagickCore, C API for ImageMagick: Memory Allocation</title/>
8   <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"/>
11   <meta name="Application-name" content="ImageMagick"/>
12   <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."/>
13   <meta name="Application-url" content="http://www.imagemagick.org"/>
14   <meta name="Generator" content="PHP"/>
15   <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"/>
16   <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"/>
22   <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
23   <meta name="Distribution" content="Global"/>
24   <link rel="icon" href="../../images/wand.png"  sizes="32x32"/>
25   <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"/>\r
27   <style type="text/css" media="all">\r
28     @import url("../../www/magick.css");\r
29   </style>\r
30 </head>\r
31 \r
32 <body id="www-imagemagick-org">\r
33 <div class="titlebar">\r
34 <a href="../../index.html">\r
35   <img src="../../images/script.png" alt="[ImageMagick]"\r
36   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
37 <a href="http://www.networkredux.com">\r
38   <img src="../../images/networkredux.png" alt="[sponsor]"\r
39   style="margin: 45px auto; border: 0px; float: left;" /></a>\r
40 <a href="http://www.imagemagick.org/discourse-server/">\r
41   <img src="../../images/logo.jpg" alt=""\r
42   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
43 <a href="../../index.html">\r
44   <img src="../../images/sprite.jpg" alt=""\r
45   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
46 </div>\r
47 \r
48 <div class="westbar">\r
49 \r
50 <div class="menu">
51   <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
52 </div>
53 <div class="sep"></div>\r
54 <div class="menu">
55   <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
56 </div>
57 <div class="sub">
58     <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
59 </div>
60 <div class="sub">
61     <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
62 </div>
63 <div class="sub">
64     <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
65 </div>
66 <div class="sep"></div>\r
67 <div class="menu">
68   <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
69 </div>
70 <div class="sub">
71     <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
72 </div>
73 <div class="sub">
74     <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
75 </div>
76 <div class="sub">
77     <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
78 </div>
79 <div class="menu">
80   <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
81 </div>
82 <div class="sub">
83     <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
84 </div>
85 <div class="sub">
86     <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
87 </div>
88 <div class="sub">
89     <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
90 </div>
91 <div class="sub">
92     <a title="Program Interface: Magick++" href="../../Magick++/">Magick++</a>
93 </div>
94 <div class="sep"></div>\r
95 <div  class="menu">
96    <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
97 </div>
98 <div class="sub">
99     <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
100 </div>
101 <div class="sub">
102     <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
103  </div>
104 <div class="menu">
105   <a title="Resources" href="../../www/resources.html">Resources</a>
106 </div>
107 <div class="menu">
108   <a title="Architecture" href="../../www/architecture.html">Architecture</a>
109 </div>
110 <div class="menu">
111   <a title="Download" href="../../www/download.html">Download</a>
112 </div>
113 <div class="sep"></div>\r
114 <div class="menu">
115   <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
116 </div>
117 <div class="sep"></div>\r
118 <div class="menu">
119   <a title="Site Map"href="../../www/sitemap.html">Site Map</a>
120 </div>
121 <div  class="sub">
122     <a title="Site Map: Links"href="../../www/links.html">Links</a>
123 </div>
124 <div class="sep"></div>\r
125 <div  class="menu">
126   <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
127
128 <div class="sponsbox">
129 <div  class="sponsor">
130   <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
131 </div>
132 <div  class="sponsor">
133   <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
134 </div>
135 <div  class="sponsor">
136   <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
137 </div>
138 <div  class="sponsor">
139   <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
140 </div>
141 <div  class="sponsor">
142   <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
143 </div>
144 <div  class="sponsor">
145    <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
146 </div>
147 <div  class="sponsor">
148    <a title="Sponsor: Atlas Multimedia" href="http://www.atlas-multimedia.de/">Atlas Multimedia</a><!-- 20101201000025 tanju.temurbas-->
149 </div>
150 </div>
151 </div>
152 </div>\r
153 \r
154 <div class="eastbar">\r
155   <script type="text/javascript">\r
156   <!--\r
157     google_ad_client = "pub-3129977114552745";\r
158     google_ad_slot = "0574824969";\r
159     google_ad_width = 160;\r
160     google_ad_height = 600;\r
161   //-->\r
162   </script>\r
163   <script type="text/javascript"\r
164     src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
165   </script>\r
166 </div>\r
167 \r
168 <div class="main">\r
169 \r
170 <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>
171
172 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
173 _8c.html" target="source" name="AcquireAlignedMemory">AcquireAlignedMemory</a></h2>
174 <div class="doc-section">
175
176 <p>AcquireAlignedMemory() returns a pointer to a block of memory at least size bytes whose address is a multiple of 16*sizeof(void *).</p></ol>
177
178 <p>The format of the AcquireAlignedMemory method is:</p>
179
180 <pre class="code">
181   void *AcquireAlignedMemory(const size_t count,const size_t quantum)
182 </pre>
183
184 <p>A description of each parameter follows:</p></ol>
185
186 <h5>count</h5>
187 <ol><p>the number of quantum elements to allocate.</p></ol>
188
189 <h5>quantum</h5>
190 <ol><p>the number of bytes in each quantum.</p></ol>
191
192  </div>
193 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
194 _8c.html" target="source" name="AcquireMagickMemory">AcquireMagickMemory</a></h2>
195 <div class="doc-section">
196
197 <p>AcquireMagickMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.</p></ol>
198
199 <p>The format of the AcquireMagickMemory method is:</p>
200
201 <pre class="code">
202   void *AcquireMagickMemory(const size_t size)
203 </pre>
204
205 <p>A description of each parameter follows:</p></ol>
206
207 <h5>size</h5>
208 <ol><p>the size of the memory in bytes to allocate.</p></ol>
209
210  </div>
211 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
212 _8c.html" target="source" name="AcquireQuantumMemory">AcquireQuantumMemory</a></h2>
213 <div class="doc-section">
214
215 <p>AcquireQuantumMemory() returns a pointer to a block of memory at least count * quantum bytes suitably aligned for any use.</p></ol>
216
217 <p>The format of the AcquireQuantumMemory method is:</p>
218
219 <pre class="code">
220   void *AcquireQuantumMemory(const size_t count,const size_t quantum)
221 </pre>
222
223 <p>A description of each parameter follows:</p></ol>
224
225 <h5>count</h5>
226 <ol><p>the number of quantum elements to allocate.</p></ol>
227
228 <h5>quantum</h5>
229 <ol><p>the number of bytes in each quantum.</p></ol>
230
231  </div>
232 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
233 _8c.html" target="source" name="CopyMagickMemory">CopyMagickMemory</a></h2>
234 <div class="doc-section">
235
236 <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></ol>
237
238 <p>The format of the CopyMagickMemory method is:</p>
239
240 <pre class="code">
241   void *CopyMagickMemory(void *destination,const void *source,
242     const size_t size)
243 </pre>
244
245 <p>A description of each parameter follows:</p></ol>
246
247 <h5>destination</h5>
248 <ol><p>the destination.</p></ol>
249
250 <h5>source</h5>
251 <ol><p>the source.</p></ol>
252
253 <h5>size</h5>
254 <ol><p>the size of the memory in bytes to allocate.</p></ol>
255
256  </div>
257 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
258 _8c.html" target="source" name="GetMagickMemoryMethods">GetMagickMemoryMethods</a></h2>
259 <div class="doc-section">
260
261 <p>GetMagickMemoryMethods() gets the methods to acquire, resize, and destroy memory.</p></ol>
262
263 <p>The format of the GetMagickMemoryMethods() method is:</p>
264
265 <pre class="code">
266   void GetMagickMemoryMethods(AcquireMemoryHandler *acquire_memory_handler,
267     ResizeMemoryHandler *resize_memory_handler,
268     DestroyMemoryHandler *destroy_memory_handler)
269 </pre>
270
271 <p>A description of each parameter follows:</p></ol>
272
273 <h5>acquire_memory_handler</h5>
274 <ol><p>method to acquire memory (e.g. malloc).</p></ol>
275
276 <h5>resize_memory_handler</h5>
277 <ol><p>method to resize memory (e.g. realloc).</p></ol>
278
279 <h5>destroy_memory_handler</h5>
280 <ol><p>method to destroy memory (e.g. free).</p></ol>
281
282  </div>
283 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
284 _8c.html" target="source" name="RelinquishAlignedMemory">RelinquishAlignedMemory</a></h2>
285 <div class="doc-section">
286
287 <p>RelinquishAlignedMemory() frees memory acquired with AcquireAlignedMemory() or reuse.</p></ol>
288
289 <p>The format of the RelinquishAlignedMemory method is:</p>
290
291 <pre class="code">
292   void *RelinquishAlignedMemory(void *memory)
293 </pre>
294
295 <p>A description of each parameter follows:</p></ol>
296
297 <h5>memory</h5>
298 <ol><p>A pointer to a block of memory to free for reuse.</p></ol>
299
300  </div>
301 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
302 _8c.html" target="source" name="RelinquishMagickMemory">RelinquishMagickMemory</a></h2>
303 <div class="doc-section">
304
305 <p>RelinquishMagickMemory() frees memory acquired with AcquireMagickMemory() or AcquireQuantumMemory() for reuse.</p></ol>
306
307 <p>The format of the RelinquishMagickMemory method is:</p>
308
309 <pre class="code">
310   void *RelinquishMagickMemory(void *memory)
311 </pre>
312
313 <p>A description of each parameter follows:</p></ol>
314
315 <h5>memory</h5>
316 <ol><p>A pointer to a block of memory to free for reuse.</p></ol>
317
318  </div>
319 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
320 _8c.html" target="source" name="ResetMagickMemory">ResetMagickMemory</a></h2>
321 <div class="doc-section">
322
323 <p>ResetMagickMemory() fills the first size bytes of the memory area pointed to by memory with the constant byte c.</p></ol>
324
325 <p>The format of the ResetMagickMemory method is:</p>
326
327 <pre class="code">
328   void *ResetMagickMemory(void *memory,int byte,const size_t size)
329 </pre>
330
331 <p>A description of each parameter follows:</p></ol>
332
333 <h5>memory</h5>
334 <ol><p>A pointer to a memory allocation.</p></ol>
335
336 <h5>byte</h5>
337 <ol><p>Set the memory to this value.</p></ol>
338
339 <h5>size</h5>
340 <ol><p>Size of the memory to reset.</p></ol>
341
342  </div>
343 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
344 _8c.html" target="source" name="ResizeMagickMemory">ResizeMagickMemory</a></h2>
345 <div class="doc-section">
346
347 <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></ol>
348
349 <p>The format of the ResizeMagickMemory method is:</p>
350
351 <pre class="code">
352   void *ResizeMagickMemory(void *memory,const size_t size)
353 </pre>
354
355 <p>A description of each parameter follows:</p></ol>
356
357 <h5>memory</h5>
358 <ol><p>A pointer to a memory allocation.</p></ol>
359
360 <h5>size</h5>
361 <ol><p>the new size of the allocated memory.</p></ol>
362
363  </div>
364 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
365 _8c.html" target="source" name="ResizeQuantumMemory">ResizeQuantumMemory</a></h2>
366 <div class="doc-section">
367
368 <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></ol>
369
370 <p>The format of the ResizeQuantumMemory method is:</p>
371
372 <pre class="code">
373   void *ResizeQuantumMemory(void *memory,const size_t count,
374     const size_t quantum)
375 </pre>
376
377 <p>A description of each parameter follows:</p></ol>
378
379 <h5>memory</h5>
380 <ol><p>A pointer to a memory allocation.</p></ol>
381
382 <h5>count</h5>
383 <ol><p>the number of quantum elements to allocate.</p></ol>
384
385 <h5>quantum</h5>
386 <ol><p>the number of bytes in each quantum.</p></ol>
387
388  </div>
389 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
390 _8c.html" target="source" name="SetMagickMemoryMethods">SetMagickMemoryMethods</a></h2>
391 <div class="doc-section">
392
393 <p>SetMagickMemoryMethods() sets the methods to acquire, resize, and destroy memory.</p></ol>
394
395 <p>The format of the SetMagickMemoryMethods() method is:</p>
396
397 <pre class="code">
398   SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler,
399     ResizeMemoryHandler resize_memory_handler,
400     DestroyMemoryHandler destroy_memory_handler)
401 </pre>
402
403 <p>A description of each parameter follows:</p></ol>
404
405 <h5>acquire_memory_handler</h5>
406 <ol><p>method to acquire memory (e.g. malloc).</p></ol>
407
408 <h5>resize_memory_handler</h5>
409 <ol><p>method to resize memory (e.g. realloc).</p></ol>
410
411 <h5>destroy_memory_handler</h5>
412 <ol><p>method to destroy memory (e.g. free).</p></ol>
413
414  </div>
415 \r
416 </div>\r
417 \r
418 <div id="linkbar">\r
419     <span id="linkbar-west">&nbsp;</span>\r
420     <span id="linkbar-center">\r
421       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
422       <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
423     </span>\r
424     <span id="linkbar-east">&nbsp;</span>\r
425   </div>\r
426   <div class="footer">\r
427     <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>\r
428     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
429   </div>\r
430   <div style="clear: both; margin: 0; width: 100%; "></div>\r
431   <script type="text/javascript">\r
432     var _gaq = _gaq || [];\r
433     _gaq.push(['_setAccount', 'UA-17690367-1']);\r
434     _gaq.push(['_trackPageview']);\r
435 \r
436     (function() {\r
437       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
438       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
439       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
440     })();\r
441   </script>\r
442 </body>\r
443 </html>\r