]> 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">\r
4 <head>\r
5   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />\r
6   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />\r
7   <style type="text/css" media="screen,projection"><!--\r
8     @import url("../../www/magick.css");\r
9   --></style>\r
10   <link rel="shortcut icon" href="../../images/wand.ico"  type="images/vnd.microsoft.icon"/>
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="Generator" content="PHP"/>
16   <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"/>
17   <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."/>
18   <meta name="Rating" content="GENERAL"/>
19   <meta name="Robots" content="INDEX, FOLLOW"/>
20   <meta name="Generator" content="ImageMagick Studio LLC"/>
21   <meta name="Author" content="ImageMagick Studio LLC"/>
22   <meta name="Revisit-after" content="2 DAYS"/>
23   <meta name="Resource-type" content="document"/>
24   <meta name="Copyright" content="Copyright (c) 1999-2009 ImageMagick Studio LLC"/>
25   <meta name="Distribution" content="Global"/>
26 </head>\r
27 \r
28 <body id="www-imagemagick-org">\r
29 <div class="titlebar">\r
30 <a href="../../index.html">\r
31   <img src="../../images/script.png" alt="[ImageMagick]"\r
32   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
33 <a href="http://www.networkredux.com">\r
34   <img src="../../images/networkredux.png" alt="[sponsor]"\r
35   style="margin: 45px auto; border: 0px; float: left;" /></a>\r
36 <a href="http://www.imagemagick.org/discourse-server/">\r
37   <img src="../../images/logo.jpg" alt=""\r
38   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
39 <a href="../../index.html">\r
40   <img src="../../images/sprite.jpg" alt=""\r
41   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
42 </div>\r
43 \r
44 <div class="eastbar">\r
45 \r
46 <div class="menu">
47   <a href="../../index.html">About ImageMagick</a>
48 </div>
49 <div class="sep"></div>\r
50 <div class="menu">
51   <a href="../../www/command-line-tools.html">Command-line Tools</a>
52 </div>
53 <div class="sub">
54     <a href="../../www/command-line-processing.html">Processing</a>
55 </div>
56 <div class="sub">
57     <a href="../../www/command-line-options.html">Options</a>
58 </div>
59 <div class="sub">
60     <a href="http://www.imagemagick.org/Usage/">Usage</a>
61 </div>
62 <div class="menu">
63   <a href="../../www/api.html">Program Interfaces</a>
64 </div>
65 <div class="sub">
66     <a href="../../www/magick-wand.html">MagickWand</a>
67 </div>
68 <div class="sub">
69     <a href="../../www/magick-core.html">MagickCore</a>
70 </div>
71 <div class="sub">
72     <a href="../../www/perl-magick.html">PerlMagick</a>
73 </div>
74 <div class="sub">
75     <a href="../../Magick++/">Magick++</a>
76 </div>
77 <div class="menu">
78   <a href="../../www/architecture.html">Architecture</a>
79 </div>
80 <div class="sep"></div>\r
81 <div  class="menu">
82    <a href="../../www/install-source.html">Install from Source</a>
83 </div>
84 <div class="sub">
85     <a href="../../www/install-source.html#unix">Unix</a>
86 </div>
87 <div class="sub">
88     <a href="../../www/install-source.html#windows">Windows</a>
89  </div>
90 <div class="menu">
91   <a href="../../www/binary-releases.html">Binary Releases</a>
92 </div>
93 <div class="sub">
94     <a href="../../www/binary-releases.html#unix">Unix</a>
95 </div>
96 <div class="sub">
97     <a href="../../www/binary-releases.html#macosx">Mac OS X</a>
98 </div>
99 <div class="sub">
100     <a href="../../www/binary-releases.html#windows">Windows</a>
101 </div>
102 <div class="menu">
103   <a href="../../www/resources.html">Resources</a>
104 </div>
105 <div class="sep"></div>\r
106 <div class="menu">
107   <a href="../../www/download.html">Download</a>
108 </div>
109 <div class="sep"></div>\r
110 <div class="menu">
111   <a href="../http://www.imagemagick.org/script/search.php">Search</a>
112 </div>
113 <div class="sep"></div>\r
114 <div class="menu">
115   <a href="../../www/sitemap.html">Site Map</a>
116 </div>
117 <div  class="sub">
118     <a href="../../www/links.html">Links</a>
119 </div>
120 <div class="sep"></div>\r
121 <div  class="menu">
122   <a href="../../www/sponsors.html">Sponsors:</a>
123
124 <div class="sponsbox">
125 <div  class="sponsor">
126   <a href="http://www.blumenversender.com">Blumenversand</a><!-- 201005010120 -->
127 </div>
128 <div  class="sponsor">
129   <a href="http://www.online-kredit-index.de">Kredit</a><!-- 201003010120 Buchhorn -->
130 </div>
131 <div  class="sponsor">
132   <a href="http://www.print24.de/">Druckerei</a><!-- 201009010720 -->
133 </div>
134 <div  class="sponsor">
135    <a href="http://www.goyax.de">Börse</a><!-- 201001000240 Gewiese digital-finance.de -->
136 </div>
137 <div  class="sponsor">
138    <a href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012001200 allesdruck.de-->
139 </div>
140 <div  class="sponsor">
141   <a href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 201002010000 -->
142 </div>
143 </div>
144 </div>
145 \r
146 \r
147 </div>\r
148 \r
149 <div class="main">\r
150 \r
151 <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>
152
153 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
154 _8c.html" target="source" name="AcquireAlignedMemory">AcquireAlignedMemory</a></h2>
155 <div class="doc-section">
156
157 <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>
158
159 <p>The format of the AcquireAlignedMemory method is:</p>
160
161 <pre class="code">
162   void *AcquireAlignedMemory(const size_t count,const size_t quantum)
163 </pre>
164
165 <p>A description of each parameter follows:</p></ol>
166
167 <h5>count</h5>
168 <ol><p>the number of quantum elements to allocate.</p></ol>
169
170 <h5>quantum</h5>
171 <ol><p>the number of bytes in each quantum.</p></ol>
172
173  </div>
174 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
175 _8c.html" target="source" name="AcquireMagickMemory">AcquireMagickMemory</a></h2>
176 <div class="doc-section">
177
178 <p>AcquireMagickMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.</p></ol>
179
180 <p>The format of the AcquireMagickMemory method is:</p>
181
182 <pre class="code">
183   void *AcquireMagickMemory(const size_t size)
184 </pre>
185
186 <p>A description of each parameter follows:</p></ol>
187
188 <h5>size</h5>
189 <ol><p>the size of the memory in bytes to allocate.</p></ol>
190
191  </div>
192 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
193 _8c.html" target="source" name="AcquireQuantumMemory">AcquireQuantumMemory</a></h2>
194 <div class="doc-section">
195
196 <p>AcquireQuantumMemory() returns a pointer to a block of memory at least count * quantum bytes suitably aligned for any use.</p></ol>
197
198 <p>The format of the AcquireQuantumMemory method is:</p>
199
200 <pre class="code">
201   void *AcquireQuantumMemory(const size_t count,const size_t quantum)
202 </pre>
203
204 <p>A description of each parameter follows:</p></ol>
205
206 <h5>count</h5>
207 <ol><p>the number of quantum elements to allocate.</p></ol>
208
209 <h5>quantum</h5>
210 <ol><p>the number of bytes in each quantum.</p></ol>
211
212  </div>
213 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
214 _8c.html" target="source" name="CopyMagickMemory">CopyMagickMemory</a></h2>
215 <div class="doc-section">
216
217 <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>
218
219 <p>The format of the CopyMagickMemory method is:</p>
220
221 <pre class="code">
222   void *CopyMagickMemory(void *destination,const void *source,
223     const size_t size)
224 </pre>
225
226 <p>A description of each parameter follows:</p></ol>
227
228 <h5>destination</h5>
229 <ol><p>the destination.</p></ol>
230
231 <h5>source</h5>
232 <ol><p>the source.</p></ol>
233
234 <h5>size</h5>
235 <ol><p>the size of the memory in bytes to allocate.</p></ol>
236
237  </div>
238 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
239 _8c.html" target="source" name="GetMagickMemoryMethods">GetMagickMemoryMethods</a></h2>
240 <div class="doc-section">
241
242 <p>GetMagickMemoryMethods() gets the methods to acquire, resize, and destroy memory.</p></ol>
243
244 <p>The format of the GetMagickMemoryMethods() method is:</p>
245
246 <pre class="code">
247   void GetMagickMemoryMethods(AcquireMemoryHandler *acquire_memory_handler,
248     ResizeMemoryHandler *resize_memory_handler,
249     DestroyMemoryHandler *destroy_memory_handler)
250 </pre>
251
252 <p>A description of each parameter follows:</p></ol>
253
254 <h5>acquire_memory_handler</h5>
255 <ol><p>method to acquire memory (e.g. malloc).</p></ol>
256
257 <h5>resize_memory_handler</h5>
258 <ol><p>method to resize memory (e.g. realloc).</p></ol>
259
260 <h5>destroy_memory_handler</h5>
261 <ol><p>method to destroy memory (e.g. free).</p></ol>
262
263  </div>
264 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
265 _8c.html" target="source" name="RelinquishAlignedMemory">RelinquishAlignedMemory</a></h2>
266 <div class="doc-section">
267
268 <p>RelinquishAlignedMemory() frees memory acquired with AcquireAlignedMemory() or reuse.</p></ol>
269
270 <p>The format of the RelinquishAlignedMemory method is:</p>
271
272 <pre class="code">
273   void *RelinquishAlignedMemory(void *memory)
274 </pre>
275
276 <p>A description of each parameter follows:</p></ol>
277
278 <h5>memory</h5>
279 <ol><p>A pointer to a block of memory to free for reuse.</p></ol>
280
281  </div>
282 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
283 _8c.html" target="source" name="RelinquishMagickMemory">RelinquishMagickMemory</a></h2>
284 <div class="doc-section">
285
286 <p>RelinquishMagickMemory() frees memory acquired with AcquireMagickMemory() or AcquireQuantumMemory() for reuse.</p></ol>
287
288 <p>The format of the RelinquishMagickMemory method is:</p>
289
290 <pre class="code">
291   void *RelinquishMagickMemory(void *memory)
292 </pre>
293
294 <p>A description of each parameter follows:</p></ol>
295
296 <h5>memory</h5>
297 <ol><p>A pointer to a block of memory to free for reuse.</p></ol>
298
299  </div>
300 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
301 _8c.html" target="source" name="ResetMagickMemory">ResetMagickMemory</a></h2>
302 <div class="doc-section">
303
304 <p>ResetMagickMemory() fills the first size bytes of the memory area pointed to by memory with the constant byte c.</p></ol>
305
306 <p>The format of the ResetMagickMemory method is:</p>
307
308 <pre class="code">
309   void *ResetMagickMemory(void *memory,int byte,const size_t size)
310 </pre>
311
312 <p>A description of each parameter follows:</p></ol>
313
314 <h5>memory</h5>
315 <ol><p>A pointer to a memory allocation.</p></ol>
316
317 <h5>byte</h5>
318 <ol><p>Set the memory to this value.</p></ol>
319
320 <h5>size</h5>
321 <ol><p>Size of the memory to reset.</p></ol>
322
323  </div>
324 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
325 _8c.html" target="source" name="ResizeMagickMemory">ResizeMagickMemory</a></h2>
326 <div class="doc-section">
327
328 <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>
329
330 <p>The format of the ResizeMagickMemory method is:</p>
331
332 <pre class="code">
333   void *ResizeMagickMemory(void *memory,const size_t size)
334 </pre>
335
336 <p>A description of each parameter follows:</p></ol>
337
338 <h5>memory</h5>
339 <ol><p>A pointer to a memory allocation.</p></ol>
340
341 <h5>size</h5>
342 <ol><p>the new size of the allocated memory.</p></ol>
343
344  </div>
345 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
346 _8c.html" target="source" name="ResizeQuantumMemory">ResizeQuantumMemory</a></h2>
347 <div class="doc-section">
348
349 <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>
350
351 <p>The format of the ResizeQuantumMemory method is:</p>
352
353 <pre class="code">
354   void *ResizeQuantumMemory(void *memory,const size_t count,
355     const size_t quantum)
356 </pre>
357
358 <p>A description of each parameter follows:</p></ol>
359
360 <h5>memory</h5>
361 <ol><p>A pointer to a memory allocation.</p></ol>
362
363 <h5>count</h5>
364 <ol><p>the number of quantum elements to allocate.</p></ol>
365
366 <h5>quantum</h5>
367 <ol><p>the number of bytes in each quantum.</p></ol>
368
369  </div>
370 <h2><a href="http://www.imagemagick.org/api/MagickCore/memory
371 _8c.html" target="source" name="SetMagickMemoryMethods">SetMagickMemoryMethods</a></h2>
372 <div class="doc-section">
373
374 <p>SetMagickMemoryMethods() sets the methods to acquire, resize, and destroy memory.</p></ol>
375
376 <p>The format of the SetMagickMemoryMethods() method is:</p>
377
378 <pre class="code">
379   SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler,
380     ResizeMemoryHandler resize_memory_handler,
381     DestroyMemoryHandler destroy_memory_handler)
382 </pre>
383
384 <p>A description of each parameter follows:</p></ol>
385
386 <h5>acquire_memory_handler</h5>
387 <ol><p>method to acquire memory (e.g. malloc).</p></ol>
388
389 <h5>resize_memory_handler</h5>
390 <ol><p>method to resize memory (e.g. realloc).</p></ol>
391
392 <h5>destroy_memory_handler</h5>
393 <ol><p>method to destroy memory (e.g. free).</p></ol>
394
395  </div>
396 \r
397 </div>\r
398 \r
399 <div id="linkbar">\r
400  <!--    <span id="linkbar-west">&nbsp;</span>  -->\r
401     <span id="linkbar-center">\r
402       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
403       <a href="../../www/mailing-list.html">Mailing Lists</a> &bull;\r
404     <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
405     </span>\r
406     <span id="linkbar-east">&nbsp;</span>\r
407   </div>\r
408   <div class="footer">\r
409     <span id="footer-west">&copy; 1999-2009 ImageMagick Studio LLC</span>\r
410     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
411   </div>\r
412   <div style="clear: both; margin: 0; width: 100%; "></div>\r
413 </body>\r
414 </html>\r