- NAME
- SYNOPSIS
- FUNCTION DESCRIPTIONS

- AttachBlob
- BlobIsSeekable
- BlobToFile
- BlobToImage
- CloneBlobInfo
- DestroyBlob
- DestroyBlobInfo
- DetachBlob
- FileToBlob
- GetBlobFileHandle
- GetBlobInfo
- GetBlobStatus
- GetBlobStreamData
- GetBlobStreamHandler
- GetBlobTemporary
- GetConfigureBlob
- ImageToBlob
- ImageToFile
- PingBlob
- ReferenceBlob
- SetBlobClosable
- SetBlobTemporary

# NAME

blob - Read or write formatted images in memory (BLOBs)

# SYNOPSIS

void AttachBlob( BlobInfo *blob_info, const void *blob, const size_t length );

MagickBool BlobIsSeekable( const Image *image );

MagickPassFail BlobToFile( const char *filename, const void *blob, const size_t length, ExceptionInfo *exception );

Image * BlobToImage( const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception );

BlobInfo * CloneBlobInfo( const BlobInfo *blob_info );

void DestroyBlob( Image *image );

void DestroyBlobInfo( BlobInfo *blob );

void DetachBlob( BlobInfo *blob_info );

void * FileToBlob( const char *filename, size_t *length, ExceptionInfo *exception );

FILE * GetBlobFileHandle( const Image *image );

void GetBlobInfo( BlobInfo *blob_info );

int GetBlobStatus( const Image *image );

unsigned char * GetBlobStreamData( const Image *image );

const StreamHandler GetBlobStreamHandler( const Image *image );

MagickBool GetBlobTemporary( const Image *image );

void * GetConfigureBlob( const char *filename, ExceptionInfo *exception );

void * ImageToBlob( const ImageInfo *image_info, Image *image, size_t *length, ExceptionInfo *exception );

MagickPassFail ImageToFile( Image *image, const char *filename, ExceptionInfo *exception );

Image * PingBlob( const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception );

BlobInfo ReferenceBlob( BlobInfo *blob_info );

void SetBlobClosable( Image *image, MagickBool closeable );

void SetBlobTemporary( Image *image, MagickBool isTemporary );

# FUNCTION DESCRIPTIONS

## AttachBlob

> AttachBlob() attaches a blob to the BlobInfo structure.

The format of the AttachBlob method is:

> void AttachBlob ( BlobInfo *blob_info, const void *blob, const size_t length );

A description of each parameter follows:

blob_info:

  Specifies a pointer to a BlobInfo structure.

blob:

  The address of a character stream in one of the image formats understood by GraphicsMagick.

length:

  This size_t integer reflects the length in bytes of the blob.

## BlobIsSeekable

> BlobIsSeekable() returns MagickTrue if the blob supports seeks ( SeekBlob ( ) is functional ) .

The format of the BlobIsSeekable method is:

> MagickBool BlobIsSeekable ( const Image *image );

A description of each parameter follows:

image:

  Image to query

## BlobToFile

> BlobToFile() writes a blob to a file. It returns MagickFail if an error occurs otherwise MagickPass.

The format of the BlobToFile method is:

> MagickPassFail BlobToFile ( const char *filename, const void *blob, const size_t length, ExceptionInfo *exception );

A description of each parameter follows:

status:

  BlobToFile returns MagickPass on success; otherwise, it returns MagickFail if an error occurs.

filename:

  Write the blob to this file.

blob:

  The address of a blob.

length:

  This length in bytes of the blob.

exception:

  Return any errors or warnings in this structure.

## BlobToImage

> BlobToImage() implements direct to memory image formats. It returns the blob as an image.

The format of the BlobToImage method is:

> Image *BlobToImage ( const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception );

A description of each parameter follows:

image_info:

  The image info.

blob:

  The address of a character stream in one of the image formats understood by GraphicsMagick.

length:

  This size_t integer reflects the length in bytes of the blob.

exception:

  Return any errors or warnings in this structure.

## CloneBlobInfo

> CloneBlobInfo() makes a duplicate of the given blob info structure, or if blob info is NULL, a new one.

The format of the CloneBlobInfo method is:

> BlobInfo *CloneBlobInfo ( const BlobInfo *blob_info );

A description of each parameter follows:

clone_info:

  Method CloneBlobInfo returns a duplicate of the given blob info, or if blob info is NULL a new one.

quantize_info:

  a structure of type info.

## DestroyBlob

> DestroyBlob() deallocates memory associated with a blob.

The format of the DestroyBlob method is:

> void DestroyBlob ( Image *image );

A description of each parameter follows:

image:

  The image.

## DestroyBlobInfo

> DestroyBlobInfo() deallocates memory associated with an BlobInfo structure. Use of DestroyBlob is preferred over this function.

The format of the DestroyBlobInfo method is:

> void DestroyBlobInfo ( BlobInfo *blob );

A description of each parameter follows:

blob:

  Specifies a pointer to a BlobInfo structure.

## DetachBlob

> DetachBlob() detaches a blob from the BlobInfo structure.

The format of the DetachBlob method is:

> void DetachBlob ( BlobInfo *blob_info );

A description of each parameter follows:

blob_info:

  Specifies a pointer to a BlobInfo structure.

## FileToBlob

> FileToBlob() returns the contents of a file as a blob. It returns the file as a blob and its length. If an error occurs, NULL is returned.

The format of the FileToBlob method is:

> void *FileToBlob ( const char *filename, size_t *length, ExceptionInfo *exception );

A description of each parameter follows:

blob:

  `FileToBlob()` returns the contents of a file as a blob. If an error occurs NULL is returned.

filename:

  The filename.

length:

  This pointer to a size_t integer sets the initial length of the blob. On return, it reflects the actual length of the blob.

exception:

  Return any errors or warnings in this structure.

## GetBlobFileHandle

> GetBlobFileHandle() returns the stdio file handle associated with the image blob. If there is no associated file handle, then a null pointer is returned.

The format of the GetBlobFileHandle method is:

> FILE *GetBlobFileHandle ( const Image *image );

A description of each parameter follows:

image:

  Image to query

## GetBlobInfo

> GetBlobInfo() initializes the BlobInfo structure.

The format of the GetBlobInfo method is:

> void GetBlobInfo ( BlobInfo *blob_info );

A description of each parameter follows:

blob_info:

  Specifies a pointer to a BlobInfo structure.

## GetBlobStatus

> GetBlobStatus() returns the blob error status.

The format of the GetBlobStatus method is:

> int GetBlobStatus ( const Image *image );

A description of each parameter follows:

image:

  The image.

## GetBlobStreamData

> GetBlobStreamData() returns the stream data for the image. The data is only available if the data is stored on the heap, or is memory mapped. Otherwise a NULL value is returned.

The format of the GetBlobStreamData method is:

> unsigned char *GetBlobStreamData ( const Image *image );

A description of each parameter follows:

image:

  The image.

## GetBlobStreamHandler

> GetBlobStreamHandler() returns the stream handler associated with the image.

The format of the GetBlobStreamHandler method is:

> const StreamHandler GetBlobStreamHandler ( const Image *image );

A description of each parameter follows:

image:

  The image.

## GetBlobTemporary

> GetBlobTemporary() returns MagickTrue if the file associated with the blob is a temporary file and should be removed when the associated image is destroyed.

The format of the GetBlobTemporary method is:

> MagickBool GetBlobTemporary ( const Image *image );

A description of each parameter follows:

image:

  Image to query

## GetConfigureBlob

> GetConfigureBlob() returns the specified configure file as a blob.

The format of the GetConfigureBlob method is:

> void *GetConfigureBlob ( const char *filename, ExceptionInfo *exception );

A description of each parameter follows:

filename:

  The configure file name.

path:

  return the full path information of the configure file.

length:

  This pointer to a size_t integer sets the initial length of the blob. On return, it reflects the actual length of the blob.

exception:

  Return any errors or warnings in this structure.

## ImageToBlob

> ImageToBlob() implements direct to memory image formats. It returns the image as a blob and its length. The magick member of the Image structure determines the format of the returned blob ( GIG, JPEG, PNG, etc. )

The format of the ImageToBlob method is:

> void *ImageToBlob ( const ImageInfo *image_info, Image *image, size_t *length, ExceptionInfo *exception );

A description of each parameter follows:

image_info:

  The image info..

image:

  The image.

length:

  This pointer to a size_t integer sets the initial length of the blob. On return, it reflects the actual length of the blob.

exception:

  Return any errors or warnings in this structure.

## ImageToFile

> ImageToFile() copies the input image from an open blob stream to a file. It returns False if an error occurs otherwise True. This function is used to handle coders which are unable to stream the data in using Blob I/O. Instead of streaming the data in, the data is streammed to a temporary file, and the coder accesses the temorary file directly.

The format of the ImageToFile method is:

> MagickPassFail ImageToFile ( Image *image, const char *filename, ExceptionInfo *exception );

A description of each parameter follows:

status:

  ImageToFile returns MagickPass on success; otherwise, it returns MagickFail if an error occurs.

image:

  The image.

filename:

  Write the image to this file.

exception:

  Return any errors or warnings in this structure.

## PingBlob

> PingBlob() returns all the attributes of an image or image sequence except for the pixels. It is much faster and consumes far less memory than BlobToImage ( ) . On failure, a NULL image is returned and exception describes the reason for the failure.

The format of the PingBlob method is:

> Image *PingBlob ( const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception );

A description of each parameter follows:

image_info:

  The image info.

blob:

  The address of a character stream in one of the image formats understood by GraphicsMagick.

length:

  This size_t integer reflects the length in bytes of the blob.

exception:

  Return any errors or warnings in this structure.

## ReferenceBlob

> ReferenceBlob() increments the reference count associated with the pixel blob, returning a pointer to the blob.

The format of the ReferenceBlob method is:

> BlobInfo ReferenceBlob ( BlobInfo *blob_info );

A description of each parameter follows:

blob_info:

  The blob_info.

## SetBlobClosable

> SetBlobClosable() enables closing the blob if MagickTrue is passed, and exempts the blob from being closed if False is passed. Blobs are closable by default ( default MagickTrue ) .

The format of the SetBlobClosable method is:

> void SetBlobClosable ( Image *image, MagickBool closeable );

A description of each parameter follows:

image:

  Image to update

closeable:

  Set to FALSE in order to disable closing the blob.

## SetBlobTemporary

> SetBlobTemporary() sets a boolean flag ( default False ) to specify if the file associated with the blob is a temporary file and should be removed when the associated image is destroyed.

The format of the SetBlobTemporary method is:

> void SetBlobTemporary ( Image *image, MagickBool isTemporary );

A description of each parameter follows:

image:

  Image to update

isTemporary:

  Set to True to indicate that the file associated with the blob is temporary.