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: Read or Write Binary Large OBjects</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:, read, or, write, binary, large, objects, 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="blob.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="blob.html#BlobToImage">BlobToImage</a> • <a href="blob.html#CustomStreamToImage">CustomStreamToImage</a> • <a href="blob.html#FileToBlob">FileToBlob</a> • <a href="blob.html#FileToImage">FileToImage</a> • <a href="blob.html#GetBlobProperties">GetBlobProperties</a> • <a href="blob.html#ImageToBlob">ImageToBlob</a> • <a href="blob.html#ImageToFile">ImageToFile</a> • <a href="blob.html#ImagesToBlob">ImagesToBlob</a> • <a href="blob.html#InjectImageBlob">InjectImageBlob</a> • <a href="blob.html#IsBlobExempt">IsBlobExempt</a> • <a href="blob.html#IsBlobSeekable">IsBlobSeekable</a> • <a href="blob.html#IsBlobTemporary">IsBlobTemporary</a></p> 95 96<h2><a href="../../api/MagickCore/blob_8c.html" id="BlobToImage">BlobToImage</a></h2> 97 98<p>BlobToImage() implements direct to memory image formats. It returns the blob as an image.</p> 99 100<p>The format of the BlobToImage method is:</p> 101 102<pre class="text"> 103Image *BlobToImage(const ImageInfo *image_info,const void *blob, 104 const size_t length,ExceptionInfo *exception) 105</pre> 106 107<p>A description of each parameter follows:</p> 108 109<dd> 110</dd> 111 112<dd> </dd> 113<dl class="dl-horizontal"> 114<dt>image_info</dt> 115<dd>the image info. </dd> 116 117<dd> </dd> 118<dt>blob</dt> 119<dd>the address of a character stream in one of the image formats understood by ImageMagick. </dd> 120 121<dd> </dd> 122<dt>length</dt> 123<dd>This size_t integer reflects the length in bytes of the blob. </dd> 124 125<dd> </dd> 126<dt>exception</dt> 127<dd>return any errors or warnings in this structure. </dd> 128 129<dd> </dd> 130</dl> 131<h2><a href="../../api/MagickCore/blob_8c.html" id="CustomStreamToImage">CustomStreamToImage</a></h2> 132 133<p>CustomStreamToImage() is the equivalent of ReadImage(), but reads the formatted "file" from the suplied method rather than to an actual file.</p> 134 135<p>The format of the CustomStreamToImage method is:</p> 136 137<pre class="text"> 138Image *CustomStreamToImage(const ImageInfo *image_info, 139 ExceptionInfo *exception) 140</pre> 141 142<p>A description of each parameter follows:</p> 143 144<dd> 145</dd> 146 147<dd> </dd> 148<dl class="dl-horizontal"> 149<dt>image_info</dt> 150<dd>the image info. </dd> 151 152<dd> </dd> 153<dt>exception</dt> 154<dd>return any errors or warnings in this structure. </dd> 155 156<dd> </dd> 157</dl> 158<h2><a href="../../api/MagickCore/blob_8c.html" id="FileToBlob">FileToBlob</a></h2> 159 160<p>FileToBlob() returns the contents of a file as a buffer terminated with the '\0' character. The length of the buffer (not including the extra terminating '\0' character) is returned via the 'length' parameter. Free the buffer with RelinquishMagickMemory().</p> 161 162<p>The format of the FileToBlob method is:</p> 163 164<pre class="text"> 165void *FileToBlob(const char *filename,const size_t extent, 166 size_t *length,ExceptionInfo *exception) 167</pre> 168 169<p>A description of each parameter follows:</p> 170 171<dd> 172</dd> 173 174<dd> </dd> 175<dl class="dl-horizontal"> 176<dt>blob</dt> 177<dd> FileToBlob() returns the contents of a file as a blob. If an error occurs NULL is returned. </dd> 178 179<dd> </dd> 180<dt>filename</dt> 181<dd>the filename. </dd> 182 183<dd> </dd> 184<dt>extent</dt> 185<dd> The maximum length of the blob. </dd> 186 187<dd> </dd> 188<dt>length</dt> 189<dd>On return, this reflects the actual length of the blob. </dd> 190 191<dd> </dd> 192<dt>exception</dt> 193<dd>return any errors or warnings in this structure. </dd> 194 195<dd> </dd> 196</dl> 197<h2><a href="../../api/MagickCore/blob_8c.html" id="FileToImage">FileToImage</a></h2> 198 199<p>FileToImage() write the contents of a file to an image.</p> 200 201<p>The format of the FileToImage method is:</p> 202 203<pre class="text"> 204MagickBooleanType FileToImage(Image *,const char *filename) 205</pre> 206 207<p>A description of each parameter follows:</p> 208 209<dd> 210</dd> 211 212<dd> </dd> 213<dl class="dl-horizontal"> 214<dt>image</dt> 215<dd>the image. </dd> 216 217<dd> </dd> 218<dt>filename</dt> 219<dd>the filename. </dd> 220 221<dd> </dd> 222</dl> 223<h2><a href="../../api/MagickCore/blob_8c.html" id="GetBlobProperties">GetBlobProperties</a></h2> 224 225<p>GetBlobProperties() returns information about an image blob.</p> 226 227<p>The format of the GetBlobProperties method is:</p> 228 229<pre class="text"> 230const struct stat *GetBlobProperties(const Image *image) 231</pre> 232 233<p>A description of each parameter follows:</p> 234 235<dd> 236</dd> 237 238<dd> </dd> 239<dl class="dl-horizontal"> 240<dt>image</dt> 241<dd>the image. </dd> 242 243<dd> </dd> 244</dl> 245<h2><a href="../../api/MagickCore/blob_8c.html" id="ImageToBlob">ImageToBlob</a></h2> 246 247<p>ImageToBlob() implements direct to memory image formats. It returns the image as a formatted blob and its length. The magick member of the Image structure determines the format of the returned blob (GIF, JPEG, PNG, etc.). This method is the equivalent of WriteImage(), but writes the formatted "file" to a memory buffer rather than to an actual file.</p> 248 249<p>The format of the ImageToBlob method is:</p> 250 251<pre class="text"> 252void *ImageToBlob(const ImageInfo *image_info,Image *image, 253 size_t *length,ExceptionInfo *exception) 254</pre> 255 256<p>A description of each parameter follows:</p> 257 258<dd> 259</dd> 260 261<dd> </dd> 262<dl class="dl-horizontal"> 263<dt>image_info</dt> 264<dd>the image info. </dd> 265 266<dd> </dd> 267<dt>image</dt> 268<dd>the image. </dd> 269 270<dd> </dd> 271<dt>length</dt> 272<dd>return the actual length of the blob. </dd> 273 274<dd> </dd> 275<dt>exception</dt> 276<dd>return any errors or warnings in this structure. </dd> 277 278<dd> </dd> 279</dl> 280<h2><a href="../../api/MagickCore/blob_8c.html" id="ImageToFile">ImageToFile</a></h2> 281 282<p>ImageToFile() writes an image to a file. It returns MagickFalse if an error occurs otherwise MagickTrue.</p> 283 284<p>The format of the ImageToFile method is:</p> 285 286<pre class="text"> 287 MagickBooleanType ImageToFile(Image *image,char *filename, 288 ExceptionInfo *exception) 289</pre> 290 291<p>A description of each parameter follows:</p> 292 293<dd> 294</dd> 295 296<dd> </dd> 297<dl class="dl-horizontal"> 298<dt>image</dt> 299<dd>the image. </dd> 300 301<dd> </dd> 302<dt>filename</dt> 303<dd>Write the image to this file. </dd> 304 305<dd> </dd> 306<dt>exception</dt> 307<dd>return any errors or warnings in this structure. </dd> 308 309<dd> </dd> 310</dl> 311<h2><a href="../../api/MagickCore/blob_8c.html" id="ImagesToBlob">ImagesToBlob</a></h2> 312 313<p>ImagesToBlob() implements direct to memory image formats. It returns the image sequence as a blob and its length. The magick member of the ImageInfo structure determines the format of the returned blob (GIF, JPEG, PNG, etc.)</p> 314 315<p>Note, some image formats do not permit multiple images to the same image stream (e.g. JPEG). in this instance, just the first image of the sequence is returned as a blob.</p> 316 317<p>The format of the ImagesToBlob method is:</p> 318 319<pre class="text"> 320void *ImagesToBlob(const ImageInfo *image_info,Image *images, 321 size_t *length,ExceptionInfo *exception) 322</pre> 323 324<p>A description of each parameter follows:</p> 325 326<dd> 327</dd> 328 329<dd> </dd> 330<dl class="dl-horizontal"> 331<dt>image_info</dt> 332<dd>the image info. </dd> 333 334<dd> </dd> 335<dt>images</dt> 336<dd>the image list. </dd> 337 338<dd> </dd> 339<dt>length</dt> 340<dd>return the actual length of the blob. </dd> 341 342<dd> </dd> 343<dt>exception</dt> 344<dd>return any errors or warnings in this structure. </dd> 345 346<dd> </dd> 347</dl> 348<h2><a href="../../api/MagickCore/blob_8c.html" id="InjectImageBlob">InjectImageBlob</a></h2> 349 350<p>InjectImageBlob() injects the image with a copy of itself in the specified format (e.g. inject JPEG into a PDF image).</p> 351 352<p>The format of the InjectImageBlob method is:</p> 353 354<pre class="text"> 355MagickBooleanType InjectImageBlob(const ImageInfo *image_info, 356 Image *image,Image *inject_image,const char *format, 357 ExceptionInfo *exception) 358</pre> 359 360<p>A description of each parameter follows:</p> 361 362<dd> 363</dd> 364 365<dd> </dd> 366<dl class="dl-horizontal"> 367<dt>image_info</dt> 368<dd>the image info.. </dd> 369 370<dd> </dd> 371<dt>image</dt> 372<dd>the image. </dd> 373 374<dd> </dd> 375<dt>inject_image</dt> 376<dd>inject into the image stream. </dd> 377 378<dd> </dd> 379<dt>format</dt> 380<dd>the image format. </dd> 381 382<dd> </dd> 383<dt>exception</dt> 384<dd>return any errors or warnings in this structure. </dd> 385 386<dd> </dd> 387</dl> 388<h2><a href="../../api/MagickCore/blob_8c.html" id="IsBlobExempt">IsBlobExempt</a></h2> 389 390<p>IsBlobExempt() returns true if the blob is exempt.</p> 391 392<p>The format of the IsBlobExempt method is:</p> 393 394<pre class="text"> 395 MagickBooleanType IsBlobExempt(const Image *image) 396</pre> 397 398<p>A description of each parameter follows:</p> 399 400<dd> 401</dd> 402 403<dd> </dd> 404<dl class="dl-horizontal"> 405<dt>image</dt> 406<dd>the image. </dd> 407 408<dd> </dd> 409</dl> 410<h2><a href="../../api/MagickCore/blob_8c.html" id="IsBlobSeekable">IsBlobSeekable</a></h2> 411 412<p>IsBlobSeekable() returns true if the blob is seekable.</p> 413 414<p>The format of the IsBlobSeekable method is:</p> 415 416<pre class="text"> 417 MagickBooleanType IsBlobSeekable(const Image *image) 418</pre> 419 420<p>A description of each parameter follows:</p> 421 422<dd> 423</dd> 424 425<dd> </dd> 426<dl class="dl-horizontal"> 427<dt>image</dt> 428<dd>the image. </dd> 429 430<dd> </dd> 431</dl> 432<h2><a href="../../api/MagickCore/blob_8c.html" id="IsBlobTemporary">IsBlobTemporary</a></h2> 433 434<p>IsBlobTemporary() returns true if the blob is temporary.</p> 435 436<p>The format of the IsBlobTemporary method is:</p> 437 438<pre class="text"> 439 MagickBooleanType IsBlobTemporary(const Image *image) 440</pre> 441 442<p>A description of each parameter follows:</p> 443 444<dd> 445</dd> 446 447<dd> </dd> 448<dl class="dl-horizontal"> 449<dt>image</dt> 450<dd>the image. </dd> 451 452<dd> </dd> 453</dl> 454</div> 455 </div> 456 </main><!-- /.container --> 457 <footer class="magick-footer"> 458 <div class="container-fluid"> 459 <a href="../../www/security-policy.html">Security</a> • 460 <a href="../../www/news.html">News</a> 461 462 <a href="blob.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../../images/wand.ico"/></a> 463 464 <a href="../../www/links.html">Related</a> • 465 <a href="../../www/sitemap.html">Sitemap</a> 466 <br/> 467 <a href="../../www/support.html">Sponsor</a> • 468 <a href="../../www/cite.html">Cite</a> • 469 <a href="http://pgp.mit.edu/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> • 470 <a href="../../www/contact.html">Contact Us</a> 471 <br/> 472 <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> • 473 <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> 474 <br/> 475 <small>© 1999-2021 ImageMagick Studio LLC</small> 476 </div> 477 </footer> 478 479 <!-- Javascript assets --> 480 <script src="../../assets/magick.js" ></script> 481 </body> 482</html> 483