File: memory.html

package info (click to toggle)
imagemagick 7%3A6.2.4.5.dfsg1-0.15%2Betch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 29,972 kB
  • ctags: 13,707
  • sloc: ansic: 202,656; cpp: 17,315; sh: 10,363; xml: 5,523; perl: 4,486; makefile: 3,148; tcl: 459
file content (191 lines) | stat: -rw-r--r-- 9,189 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <style type="text/css"><!--
    @import url("../../www/magick.css");
  //--></style>
  <title>ImageMagick: MagickCore, C API for ImageMagick: Memory Allocation</title>
  <meta http-equiv="Content-Language" content="en-US" />
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Reply-to" content="magick-users@imagemagick.org" />
  <meta name="Generator" content="PHP" />
  <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, memory, allocation, ImageMagick, PerlMagick, Magick++, Image, Magick" />
  <meta name="Description" content="ImageMagick (TM) is a free software suite to create, edit and compose bitmap images. It can read, convert and write images in a large variety of formats. Images can be cropped, colors can be changed, various effects can be applied, images can be rotated and combined, and text, lines, polygons, ellipses and Bézier curves can be added to images and stretched and rotated.  ImageMagick is free software: it is delivered with full source code and can be freely used, copied, modified and distributed. Its license is compatible with the GPL. It runs on all major operating systems.  Most of the functionality of ImageMagick can be used interactively from the command line; more often, however, the features are used from programs written in the programming languages Perl, C, C++, Python, PHP, Ruby or Java, for which ready-made ImageMagick interfaces (PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick) are available. This makes it possible to modify or create images automatically and dynamically.  ImageMagick supports many image formats (over 90 major formats) including popular formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF." />
  <meta name="Rating" content="GENERAL" />
  <meta name="Robots" content="ALL" />
  <meta name="Generator" content="ImageMagick Studio LLC" />
  <meta name="Author" content="ImageMagick Studio LLC" />
  <meta name="Revisit-after" content="2 DAYS" />
  <meta name="Resource-type" content="document" />
  <meta name="Copyright" content="Copyright (c) 1999-2005 ImageMagick Studio LLC" />
  <meta name="Distribution" content="Global" />
  <link rel="shortcut icon" href="/../images/wand.ico"  type="image/x-icon" />
</head>

<body id="www-imagemagick-org">
  <table width="100%" id="titlebar" bgcolor="#f5f5f5" cellpadding="0" cellspacing="0" border="0" summary="ImageMagick">
    <tbody>
      <tr valign="top">
        <td align="left"><a href="../../index.html"><img id="titlebar-west" src="../../images/script.png" alt="[ImageMagick]" width="202" height="118" border="0" name="titlebar-west" /></a></td>
        <td width="35%"><br /></td>
        <td align="left"><a href="http://www.imagemagick.org/" target="290148123"><img id="titlebar-west" src="../../images/sponsor.jpg" alt="[sponsor]" border="0" vspace="28" name="titlebar-west" /></a></td>
        <td width="65%"><br /></td>
        <td bgcolor="white" align="right"><a href="../../index.html"><img src="../../images/sprite.jpg" alt="" width="114" height="118" border="0" name="titlebar-east" /></a></td>
        <td bgcolor="white" align="right"><a href="../../index.html"><img id="titlebar-east" src="../../images/logo.jpg" alt="" width="114" height="118" border="0" name="titlebar-east" /></a></td>
      </tr>
    </tbody>
  </table>

  <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="">
  <tbody>

    <tr valign="top" style="height: 100%;">
      <td id="menu" width="1%" height="100%">
      <p><a href="#main">Skip to page contents</a></p>
      <span>[</span>
      <a href="../../index.html">About ImageMagick</a>
      <a href="../../www/command-line-tools.html">Command-line Tools</a>
      <a href="../../www/api.html">Program Interfaces</a>
  <span>]</span><br /><span>[</span>
      <a href="../../www/install-source.html">Install from Source</a>
      <a href="../../www/binary-releases.html">Binary Releases</a>
      <a href="../../www/resources.html">Resources</a>
  <span>]</span><br /><span>[</span>
      <a href="../../www/download.html">Download</a>
  <span>]</span><br /><span>[</span>
      <a href="../../www/links.html">Links</a>
  <span>]</span><br /><br /><span>[</span>
      <a href="../../www/sponsors.html">Sponsors</a>
  <a href="http://www.travelsur.net/" class="sponsor" target="sponsor">Trips to Argentina</a><!-- 20050621 -->
      <span>]</span>
      </td>

      <td id="main" valign="top">
<p class="navigation-index">[ <a href="#By default, ANSI memory methods are called (e.g. malloc">By default, ANSI memory methods are called (e.g. malloc</a> | <a href="#AcquireMagickMemory">AcquireMagickMemory</a> | <a href="#CopyMagickMemory">CopyMagickMemory</a> | <a href="#RelinquishMagickMemory">RelinquishMagickMemory</a> | <a href="#ResetMagickMemory">ResetMagickMemory</a> | <a href="#ResizeMagickMemory">ResizeMagickMemory</a> ]</p>

<div style="margin: auto;">
  <h2><a name="By default, ANSI memory methods are called (e.g. malloc">By default, ANSI memory methods are called (e.g. malloc</a></h2>
</div>

<p>By default, ANSI memory methods are called (e.g. malloc()).  Use the custom memory allocator by defining UseEmbeddableMagick.  The custom memory allocator has the advantage of using memory-mapped heap allocation which permits the virtual memory to be returned to the system in all cases, unlike the ANSI memory methods that typically only memory-map large allocations.</p>

<div style="margin: auto;">
  <h2><a name="AcquireMagickMemory">AcquireMagickMemory</a></h2>
</div>

<p>AcquireMagickMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.</p>

<p>The format of the AcquireMagickMemory method is:</p>

<pre class="code">
  void *AcquireMagickMemory(const size_t size)
</pre>

<p>A description of each parameter follows:</p>

<h4>size</h4>
<p>The size of the memory in bytes to allocate.</p>

<div style="margin: auto;">
  <h2><a name="CopyMagickMemory">CopyMagickMemory</a></h2>
</div>

<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>

<p>The format of the CopyMagickMemory method is:</p>

<pre class="code">
  void *CopyMagickMemory(void *destination,const void *source,
    const size_t size)
</pre>

<p>A description of each parameter follows:</p>

<h4>destination</h4>
<p>The destination.</p>

<h4>source</h4>
<p>The source.</p>

<h4>size</h4>
<p>The size of the memory in bytes to allocate.</p>


<div style="margin: auto;">
  <h2><a name="RelinquishMagickMemory">RelinquishMagickMemory</a></h2>
</div>

<p>RelinquishMagickMemory() zeros memory that has been allocated, frees it for reuse.</p>

<p>The format of the RelinquishMagickMemory method is:</p>

<pre class="code">
  void *RelinquishMagickMemory(void *memory)
</pre>

<p>A description of each parameter follows:</p>

<h4>memory</h4>
<p>A pointer to a block of memory to free for reuse.</p>

<div style="margin: auto;">
  <h2><a name="ResetMagickMemory">ResetMagickMemory</a></h2>
</div>

<p>ResetMagickMemory() fills the first size bytes of the memory area pointed to by memory with the constant byte c.</p>

<p>The format of the ResetMagickMemory method is:</p>

<pre class="code">
  void *ResetMagickMemory(void *memory,int byte,const size_t size)
</pre>

<p>A description of each parameter follows:</p>

<h4>memory</h4>
<p>A pointer to a memory allocation.</p>

<h4>byte</h4>
<p>Set the memory to this value.</p>

<h4>size</h4>
<p>Size of the memory to reset.</p>

<div style="margin: auto;">
  <h2><a name="ResizeMagickMemory">ResizeMagickMemory</a></h2>
</div>

<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>

<p>The format of the ResizeMagickMemory method is:</p>

<pre class="code">
  void *ResizeMagickMemory(void *memory,const size_t size)
</pre>

<p>A description of each parameter follows:</p>

<h4>memory</h4>
<p>A pointer to a memory allocation.</p>

<h4>size</h4>
<p>The new size of the allocated memory.</p>

      </td>
      <td id="margin" width="1%" height="100%" valign="top" align="right">&nbsp;</td>
    </tr>
  </tbody>
  </table>
  <div id="linkbar">
    <a href="http://redux.imagemagick.org/discussion-server" target="342672270">Discourse Server</a> |
    <a href="../../www/mailing-list.html">Mailing Lists</a> |
    <a href="http://redux.imagemagick.org/gallery" target="22980913">Image Gallery</a> |
    <a href="http://redux.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi" target="1581482493">ImageMagick Studio</a>
  </div>
  <div>
    <span id="footer-west">&copy; 1999-2005 ImageMagick Studio LLC</span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
</body>
</html>