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