• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2
3
4
5<!doctype html>
6<html lang="en">
7<head>
8  <meta charset="utf-8"  />
9  <meta name="viewport" content="width=device-width, initial-scale=1"  />
10  <title>ImageMagick - MagickCore, C API: Constitute an Image</title>
11  <meta name="application-name" content="ImageMagick" />
12  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert digital images. Resize an image, crop it, change its shades and colors, add captions, and more." />
13  <meta name="application-url" content="https://imagemagick.org" />
14  <meta name="generator" content="PHP" />
15  <meta name="keywords" content="magickcore, c, api:, constitute, an, image, image processing software" />
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-2020 ImageMagick Studio LLC" />
23  <meta name="distribution" content="Global" />
24  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
25  <meta property='og:url' content='../../' />
26  <meta property='og:title' content='ImageMagick' />
27  <meta property='og:image' content='../../../images/logo.png' />
28  <meta property='og:type' content='website' />
29  <meta property='og:site_name' content='ImageMagick' />
30  <meta property='og:description' content="Create, Edit, Compose, or Convert Digital Images" />
31  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
32  <link href="constitute.html" rel="canonical" />
33  <link href="../../../images/wand.png" rel="icon" />
34  <link href="../../../images/wand.ico" rel="shortcut icon" />
35  <link href="../../assets/magick.css" rel="stylesheet" />
36</head>
37<body>
38  <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
39  <div class="container-fluid">
40    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../../images/wand.ico"/></a>
41    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#magick-navbars" aria-controls="magick-navbars" aria-expanded="false" aria-label="Toggle navigation">
42      <span class="navbar-toggler-icon"></span>
43    </button>
44
45    <div class="collapse navbar-collapse" id="magick-navbars">
46      <ul class="navbar-nav me-auto mb-2 mb-md-0">
47        <li class="nav-item">
48          <a class="nav-link " href="../../www/index.html">Home</a>
49        </li>
50        <li class="nav-item">
51          <a class="nav-link " href="../../www/download.html">Download</a>
52        </li>
53        <li class="nav-item">
54          <a class="nav-link " href="../../www/command-line-tools.html">Tools</a>
55        </li>
56        <li class="nav-item">
57          <a class="nav-link " href="../../www/command-line-processing.html">CLI</a>
58        </li>
59        <li class="nav-item">
60          <a class="nav-link " href="../../www/develop.html">Develop</a>
61        </li>
62        <li class="nav-item">
63          <a class="nav-link" target="_blank" href="https://github.com/ImageMagick/ImageMagick/discussions">Community</a>
64        </li>
65        <li class="nav-item">
66          <iframe src="https://github.com/sponsors/ImageMagick/button" title="Sponsor ImageMagick" height="35" width="107" style="border: 0;"></iframe>
67        </li>
68      </ul>
69      <form class="d-flex form-inline" action="https://imagemagick.org/script/search.php">
70        <input class="form-control me-2" type="text" name="q" placeholder="Search" aria-label="Search">
71        <button class="btn btn-outline-success" type="submit" name="sa">Search</button>
72      </form>
73    </div>
74  </div>
75  </nav>
76
77  <div class="container">
78    <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>
79    <ins class="adsbygoogle"
80      style="display:block"
81      data-ad-client="ca-pub-3129977114552745"
82      data-ad-slot="6345125851"
83      data-full-width-responsive="true"
84      data-ad-format="horizontal"></ins>
85    <script>
86      (adsbygoogle = window.adsbygoogle || []).push({});
87    </script>
88
89  </div>
90
91  <main class="container">
92  <div class="magick-template">
93<div class="magick-header">
94<p class="text-center"><a href="constitute.html#ConstituteImage">ConstituteImage</a> &#8226; <a href="constitute.html#PingImage">PingImage</a> &#8226; <a href="constitute.html#PingImages">PingImages</a> &#8226; <a href="constitute.html#ReadImage">ReadImage</a> &#8226; <a href="constitute.html#ReadImages">ReadImages</a> &#8226; <a href="constitute.html#WriteImage">WriteImage</a> &#8226; <a href="constitute.html#WriteImages">WriteImages</a></p>
95
96<h2><a href="../../api/MagickCore/constitute_8c.html" id="ConstituteImage">ConstituteImage</a></h2>
97
98<p>ConstituteImage() returns an image from the pixel data you supply. The pixel data must be in scanline order top-to-bottom.  The data can be char, short int, int, float, or double.  Float and double require the pixels to be normalized [0..1], otherwise [0..QuantumRange].  For example, to create a 640x480 image from unsigned red-green-blue character data, use:</p>
99
100<pre class="text">
101image = ConstituteImage(640,480,"RGB",CharPixel,pixels,&amp;exception);
102</pre>
103
104<p>The format of the ConstituteImage method is:</p>
105
106<pre class="text">
107Image *ConstituteImage(const size_t columns,const size_t rows,
108  const char *map,const StorageType storage,const void *pixels,
109  ExceptionInfo *exception)
110</pre>
111
112<p>A description of each parameter follows:</p>
113
114<dd>
115</dd>
116
117<dd> </dd>
118<dl class="dl-horizontal">
119<dt>columns</dt>
120<dd>width in pixels of the image. </dd>
121
122<dd> </dd>
123<dt>rows</dt>
124<dd>height in pixels of the image. </dd>
125
126<dd> </dd>
127<dt>map</dt>
128<dd> This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad. </dd>
129
130<dd> </dd>
131<dt>storage</dt>
132<dd>Define the data type of the pixels.  Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange].  Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel. </dd>
133
134<dd> </dd>
135<dt>pixels</dt>
136<dd>This array of values contain the pixel components as defined by map and type.  You must preallocate this array where the expected length varies depending on the values of width, height, map, and type. </dd>
137
138<dd> </dd>
139<dt>exception</dt>
140<dd>return any errors or warnings in this structure. </dd>
141
142<dd>  </dd>
143</dl>
144<h2><a href="../../api/MagickCore/constitute_8c.html" id="PingImage">PingImage</a></h2>
145
146<p>PingImage() returns all the properties of an image or image sequence except for the pixels.  It is much faster and consumes far less memory than ReadImage().  On failure, a NULL image is returned and exception describes the reason for the failure.</p>
147
148<p>The format of the PingImage method is:</p>
149
150<pre class="text">
151Image *PingImage(const ImageInfo *image_info,ExceptionInfo *exception)
152</pre>
153
154<p>A description of each parameter follows:</p>
155
156<dd>
157</dd>
158
159<dd> </dd>
160<dl class="dl-horizontal">
161<dt>image_info</dt>
162<dd>Ping the image defined by the file or filename members of this structure. </dd>
163
164<dd> </dd>
165<dt>exception</dt>
166<dd>return any errors or warnings in this structure. </dd>
167
168<dd>  </dd>
169</dl>
170<h2><a href="../../api/MagickCore/constitute_8c.html" id="PingImages">PingImages</a></h2>
171
172<p>PingImages() pings one or more images and returns them as an image list.</p>
173
174<p>The format of the PingImage method is:</p>
175
176<pre class="text">
177Image *PingImages(ImageInfo *image_info,const char *filename,
178  ExceptionInfo *exception)
179</pre>
180
181<p>A description of each parameter follows:</p>
182
183<dd>
184</dd>
185
186<dd> </dd>
187<dl class="dl-horizontal">
188<dt>image_info</dt>
189<dd>the image info. </dd>
190
191<dd> </dd>
192<dt>filename</dt>
193<dd>the image filename. </dd>
194
195<dd> </dd>
196<dt>exception</dt>
197<dd>return any errors or warnings in this structure. </dd>
198
199<dd>  </dd>
200</dl>
201<h2><a href="../../api/MagickCore/constitute_8c.html" id="ReadImage">ReadImage</a></h2>
202
203<p>ReadImage() reads an image or image sequence from a file or file handle. The method returns a NULL if there is a memory shortage or if the image cannot be read.  On failure, a NULL image is returned and exception describes the reason for the failure.</p>
204
205<p>The format of the ReadImage method is:</p>
206
207<pre class="text">
208Image *ReadImage(const ImageInfo *image_info,ExceptionInfo *exception)
209</pre>
210
211<p>A description of each parameter follows:</p>
212
213<dd>
214</dd>
215
216<dd> </dd>
217<dl class="dl-horizontal">
218<dt>image_info</dt>
219<dd>Read the image defined by the file or filename members of this structure. </dd>
220
221<dd> </dd>
222<dt>exception</dt>
223<dd>return any errors or warnings in this structure. </dd>
224
225<dd>  </dd>
226</dl>
227<h2><a href="../../api/MagickCore/constitute_8c.html" id="ReadImages">ReadImages</a></h2>
228
229<p>ReadImages() reads one or more images and returns them as an image list.</p>
230
231<p>The format of the ReadImage method is:</p>
232
233<pre class="text">
234Image *ReadImages(ImageInfo *image_info,const char *filename,
235  ExceptionInfo *exception)
236</pre>
237
238<p>A description of each parameter follows:</p>
239
240<dd>
241</dd>
242
243<dd> </dd>
244<dl class="dl-horizontal">
245<dt>image_info</dt>
246<dd>the image info. </dd>
247
248<dd> </dd>
249<dt>filename</dt>
250<dd>the image filename. </dd>
251
252<dd> </dd>
253<dt>exception</dt>
254<dd>return any errors or warnings in this structure. </dd>
255
256<dd>  </dd>
257</dl>
258<h2><a href="../../api/MagickCore/constitute_8c.html" id="WriteImage">WriteImage</a></h2>
259
260<p>WriteImage() writes an image or an image sequence to a file or file handle. If writing to a file is on disk, the name is defined by the filename member of the image structure.  WriteImage() returns MagickFalse is there is a memory shortage or if the image cannot be written.  Check the exception member of image to determine the cause for any failure.</p>
261
262<p>The format of the WriteImage method is:</p>
263
264<pre class="text">
265MagickBooleanType WriteImage(const ImageInfo *image_info,Image *image,
266  ExceptionInfo *exception)
267</pre>
268
269<p>A description of each parameter follows:</p>
270
271<dd>
272</dd>
273
274<dd> </dd>
275<dl class="dl-horizontal">
276<dt>image_info</dt>
277<dd>the image info. </dd>
278
279<dd> </dd>
280<dt>image</dt>
281<dd>the image. </dd>
282
283<dd> </dd>
284<dt>exception</dt>
285<dd>return any errors or warnings in this structure. </dd>
286
287<dd>  </dd>
288</dl>
289<h2><a href="../../api/MagickCore/constitute_8c.html" id="WriteImages">WriteImages</a></h2>
290
291<p>WriteImages() writes an image sequence into one or more files.  While WriteImage() can write an image sequence, it is limited to writing the sequence into a single file using a format which supports multiple frames.   WriteImages(), however, does not have this limitation, instead it generates multiple output files if necessary (or when requested).  When ImageInfo's adjoin flag is set to MagickFalse, the file name is expected to include a printf-style formatting string for the frame number (e.g. "image02d.png").</p>
292
293<p>The format of the WriteImages method is:</p>
294
295<pre class="text">
296MagickBooleanType WriteImages(const ImageInfo *image_info,Image *images,
297  const char *filename,ExceptionInfo *exception)
298</pre>
299
300<p>A description of each parameter follows:</p>
301
302<dd>
303</dd>
304
305<dd> </dd>
306<dl class="dl-horizontal">
307<dt>image_info</dt>
308<dd>the image info. </dd>
309
310<dd> </dd>
311<dt>images</dt>
312<dd>the image list. </dd>
313
314<dd> </dd>
315<dt>filename</dt>
316<dd>the image filename. </dd>
317
318<dd> </dd>
319<dt>exception</dt>
320<dd>return any errors or warnings in this structure. </dd>
321
322<dd>  </dd>
323</dl>
324</div>
325  </div>
326  </main><!-- /.container -->
327  <footer class="magick-footer">
328    <div class="container-fluid">
329      <a href="../../www/security-policy.html">Security</a> •
330      <a href="../../www/news.html">News</a>
331
332      <a href="constitute.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../../images/wand.ico"/></a>
333
334      <a href="../../www/links.html">Related</a> •
335      <a href="../../www/sitemap.html">Sitemap</a>
336   <br/>
337     <a href="../../www/support.html">Sponsor</a> •
338     <a href="../../www/cite.html">Cite</a> •
339     <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
340     <a href="../../www/contact.html">Contact Us</a>
341   <br/>
342     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
343     <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
344    <br/>
345    <small>© 1999-2021 ImageMagick Studio LLC</small>
346    </div>
347  </footer>
348
349  <!-- Javascript assets -->
350  <script src="../../assets/magick.js" ></script>
351  </body>
352</html>
353