MagickCore  6.9.11-59
Convert, Edit, Or Compose Bitmap Images
blob.c File Reference
#include "magick/studio.h"
#include "magick/blob.h"
#include "magick/blob-private.h"
#include "magick/cache.h"
#include "magick/client.h"
#include "magick/constitute.h"
#include "magick/delegate.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/geometry.h"
#include "magick/image-private.h"
#include "magick/list.h"
#include "magick/locale_.h"
#include "magick/log.h"
#include "magick/magick.h"
#include "magick/memory_.h"
#include "magick/nt-base-private.h"
#include "magick/option.h"
#include "magick/policy.h"
#include "magick/resource_.h"
#include "magick/semaphore.h"
#include "magick/string_.h"
#include "magick/string-private.h"
#include "magick/timer-private.h"
#include "magick/token.h"
#include "magick/utility.h"
#include "magick/utility-private.h"
Include dependency graph for blob.c:

Data Structures

union  FileInfo
 
struct  _BlobInfo
 

Macros

#define MagickMaxBlobExtent   65541
 
#define MAP_FAILED   ((void *) -1)
 

Typedefs

typedef union FileInfo FileInfo
 

Functions

static int SyncBlob (Image *)
 
MagickExport void AttachBlob (BlobInfo *blob_info, const void *blob, const size_t length)
 
MagickExport MagickBooleanType BlobToFile (char *filename, const void *blob, const size_t length, ExceptionInfo *exception)
 
MagickExport ImageBlobToImage (const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception)
 
MagickExport BlobInfoCloneBlobInfo (const BlobInfo *blob_info)
 
static void ThrowBlobException (BlobInfo *blob_info)
 
MagickExport MagickBooleanType CloseBlob (Image *image)
 
MagickExport void DestroyBlob (Image *image)
 
MagickExport unsigned char * DetachBlob (BlobInfo *blob_info)
 
MagickPrivate void DisassociateBlob (Image *image)
 
MagickExport MagickBooleanType DiscardBlobBytes (Image *image, const MagickSizeType length)
 
MagickExport void DuplicateBlob (Image *image, const Image *duplicate)
 
MagickExport int EOFBlob (const Image *image)
 
MagickExport int ErrorBlob (const Image *image)
 
MagickExport unsigned char * FileToBlob (const char *filename, const size_t extent, size_t *length, ExceptionInfo *exception)
 
static ssize_t WriteBlobStream (Image *image, const size_t length, const unsigned char *magick_restrict data)
 
MagickExport MagickBooleanType FileToImage (Image *image, const char *filename)
 
MagickExport MagickBooleanType GetBlobError (const Image *image)
 
MagickExport FILE * GetBlobFileHandle (const Image *image)
 
MagickExport void GetBlobInfo (BlobInfo *blob_info)
 
MagickExport const struct stat * GetBlobProperties (const Image *image)
 
MagickExport MagickSizeType GetBlobSize (const Image *image)
 
MagickExport unsigned char * GetBlobStreamData (const Image *image)
 
MagickExport StreamHandler GetBlobStreamHandler (const Image *image)
 
MagickExport unsigned char * ImageToBlob (const ImageInfo *image_info, Image *image, size_t *length, ExceptionInfo *exception)
 
MagickExport MagickBooleanType ImageToFile (Image *image, char *filename, ExceptionInfo *exception)
 
MagickExport unsigned char * ImagesToBlob (const ImageInfo *image_info, Image *images, size_t *length, ExceptionInfo *exception)
 
MagickExport MagickBooleanType InjectImageBlob (const ImageInfo *image_info, Image *image, Image *inject_image, const char *format, ExceptionInfo *exception)
 
MagickExport MagickBooleanType IsBlobExempt (const Image *image)
 
MagickExport MagickBooleanType IsBlobSeekable (const Image *image)
 
MagickExport MagickBooleanType IsBlobTemporary (const Image *image)
 
MagickExport unsigned char * MapBlob (int file, const MapMode mode, const MagickOffsetType offset, const size_t length)
 
MagickExport void MSBOrderLong (unsigned char *buffer, const size_t length)
 
MagickExport void MSBOrderShort (unsigned char *p, const size_t length)
 
static MagickBooleanType SetStreamBuffering (const ImageInfo *image_info, Image *image)
 
MagickExport MagickBooleanType OpenBlob (const ImageInfo *image_info, Image *image, const BlobMode mode, ExceptionInfo *exception)
 
static size_t PingStream (const Image *magick_unused(image), const void *magick_unused(pixels), const size_t columns)
 
MagickExport ImagePingBlob (const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception)
 
MagickExport ssize_t ReadBlob (Image *image, const size_t length, unsigned char *data)
 
MagickExport int ReadBlobByte (Image *image)
 
MagickExport double ReadBlobDouble (Image *image)
 
MagickExport float ReadBlobFloat (Image *image)
 
MagickExport unsigned int ReadBlobLong (Image *image)
 
MagickExport MagickSizeType ReadBlobLongLong (Image *image)
 
MagickExport unsigned short ReadBlobShort (Image *image)
 
MagickExport unsigned int ReadBlobLSBLong (Image *image)
 
MagickExport signed int ReadBlobLSBSignedLong (Image *image)
 
MagickExport unsigned short ReadBlobLSBShort (Image *image)
 
MagickExport signed short ReadBlobLSBSignedShort (Image *image)
 
MagickExport unsigned int ReadBlobMSBLong (Image *image)
 
MagickExport MagickSizeType ReadBlobMSBLongLong (Image *image)
 
MagickExport unsigned short ReadBlobMSBShort (Image *image)
 
MagickExport signed int ReadBlobMSBSignedLong (Image *image)
 
MagickExport signed short ReadBlobMSBSignedShort (Image *image)
 
MagickExport signed int ReadBlobSignedLong (Image *image)
 
MagickExport signed short ReadBlobSignedShort (Image *image)
 
MagickExport magick_hot_spot const void * ReadBlobStream (Image *image, const size_t length, void *magick_restrict data, ssize_t *count)
 
MagickExport char * ReadBlobString (Image *image, char *string)
 
MagickExport BlobInfoReferenceBlob (BlobInfo *blob)
 
MagickExport MagickOffsetType SeekBlob (Image *image, const MagickOffsetType offset, const int whence)
 
MagickExport void SetBlobExempt (Image *image, const MagickBooleanType exempt)
 
MagickExport MagickBooleanType SetBlobExtent (Image *image, const MagickSizeType extent)
 
MagickExport MagickOffsetType TellBlob (const Image *image)
 
MagickExport MagickBooleanType UnmapBlob (void *map, const size_t length)
 
MagickExport ssize_t WriteBlob (Image *image, const size_t length, const unsigned char *data)
 
MagickExport ssize_t WriteBlobByte (Image *image, const unsigned char value)
 
MagickExport ssize_t WriteBlobFloat (Image *image, const float value)
 
MagickExport ssize_t WriteBlobLong (Image *image, const unsigned int value)
 
MagickExport ssize_t WriteBlobShort (Image *image, const unsigned short value)
 
MagickExport ssize_t WriteBlobLSBLong (Image *image, const unsigned int value)
 
MagickExport ssize_t WriteBlobLSBShort (Image *image, const unsigned short value)
 
MagickExport ssize_t WriteBlobLSBSignedLong (Image *image, const signed int value)
 
MagickExport ssize_t WriteBlobLSBSignedShort (Image *image, const signed short value)
 
MagickExport ssize_t WriteBlobMSBLong (Image *image, const unsigned int value)
 
MagickExport ssize_t WriteBlobMSBLongLong (Image *image, const MagickSizeType value)
 
MagickExport ssize_t WriteBlobMSBShort (Image *image, const unsigned short value)
 
MagickExport ssize_t WriteBlobMSBSignedLong (Image *image, const signed int value)
 
MagickExport ssize_t WriteBlobMSBSignedShort (Image *image, const signed short value)
 
MagickExport ssize_t WriteBlobString (Image *image, const char *string)
 

Macro Definition Documentation

◆ MagickMaxBlobExtent

#define MagickMaxBlobExtent   65541

◆ MAP_FAILED

#define MAP_FAILED   ((void *) -1)

Typedef Documentation

◆ FileInfo

typedef union FileInfo FileInfo

Function Documentation

◆ AttachBlob()

◆ BlobToFile()

MagickExport MagickBooleanType BlobToFile ( char *  filename,
const void *  blob,
const size_t  length,
ExceptionInfo exception 
)

◆ BlobToImage()

◆ CloneBlobInfo()

◆ CloseBlob()

◆ DestroyBlob()

◆ DetachBlob()

◆ DisassociateBlob()

MagickPrivate void DisassociateBlob ( Image image)

References _Image::blob, CloneBlobInfo(), _Image::debug, DestroyBlob(), _Image::filename, GetMagickModule, LockSemaphoreInfo(), LogMagickEvent(), magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, _BlobInfo::signature, _Image::signature, TraceEvent, and UnlockSemaphoreInfo().

Referenced by DisassociateImageStream().

Here is the caller graph for this function:

◆ DiscardBlobBytes()

◆ DuplicateBlob()

◆ EOFBlob()

◆ ErrorBlob()

◆ FileToBlob()

◆ FileToImage()

◆ GetBlobError()

◆ GetBlobFileHandle()

MagickExport FILE* GetBlobFileHandle ( const Image image)

◆ GetBlobInfo()

◆ GetBlobProperties()

MagickExport const struct stat* GetBlobProperties ( const Image image)

References _Image::blob, _Image::debug, _Image::filename, GetMagickModule, LogMagickEvent(), MagickCoreSignature, MagickFalse, _BlobInfo::properties, _Image::signature, and TraceEvent.

Referenced by ReadImage().

Here is the caller graph for this function:

◆ GetBlobSize()

◆ GetBlobStreamData()

MagickExport unsigned char* GetBlobStreamData ( const Image image)

◆ GetBlobStreamHandler()

MagickExport StreamHandler GetBlobStreamHandler ( const Image image)

References _Image::blob, _Image::debug, _Image::filename, GetMagickModule, LogMagickEvent(), MagickCoreSignature, MagickFalse, _Image::signature, _BlobInfo::stream, and TraceEvent.

Referenced by QueueAuthenticPixelsStream(), and SyncAuthenticPixelsStream().

Here is the caller graph for this function:

◆ ImagesToBlob()

◆ ImageToBlob()

◆ ImageToFile()

◆ InjectImageBlob()

◆ IsBlobExempt()

◆ IsBlobSeekable()

◆ IsBlobTemporary()

MagickExport MagickBooleanType IsBlobTemporary ( const Image image)

References _Image::blob, _Image::debug, _Image::filename, GetMagickModule, LogMagickEvent(), MagickCoreSignature, MagickFalse, _Image::signature, _BlobInfo::temporary, and TraceEvent.

Referenced by ReadImage().

Here is the caller graph for this function:

◆ MapBlob()

MagickExport unsigned char* MapBlob ( int  file,
const MapMode  mode,
const MagickOffsetType  offset,
const size_t  length 
)

References IOMode, MAP_FAILED, ReadMode, and WriteMode.

Referenced by AcquireCacheNexusPixels(), AcquireMatrixInfo(), AcquireStreamPixels(), AcquireVirtualMemory(), ConfigureFileToStringInfo(), FileToBlob(), FileToXML(), OpenBlob(), OpenPixelCache(), and SetBlobExtent().

Here is the caller graph for this function:

◆ MSBOrderLong()

MagickExport void MSBOrderLong ( unsigned char *  buffer,
const size_t  length 
)

◆ MSBOrderShort()

MagickExport void MSBOrderShort ( unsigned char *  p,
const size_t  length 
)

◆ OpenBlob()

MagickExport MagickBooleanType OpenBlob ( const ImageInfo image_info,
Image image,
const BlobMode  mode,
ExceptionInfo exception 
)

◆ PingBlob()

◆ PingStream()

static size_t PingStream ( const Image magick_unusedimage,
const void *  magick_unusedpixels,
const size_t  columns 
)
static

References magick_unreferenced.

Referenced by PingBlob().

◆ ReadBlob()

◆ ReadBlobByte()

MagickExport int ReadBlobByte ( Image image)

References _Image::blob, FileStream, magick_restrict, MagickCoreSignature, PipeStream, ReadBlobStream(), _Image::signature, StandardStream, _BlobInfo::type, and UndefinedStream.

Referenced by ReadBlobString().

Here is the caller graph for this function:

◆ ReadBlobDouble()

MagickExport double ReadBlobDouble ( Image image)

References ReadBlobLongLong().

◆ ReadBlobFloat()

MagickExport float ReadBlobFloat ( Image image)

References ReadBlobLong().

◆ ReadBlobLong()

MagickExport unsigned int ReadBlobLong ( Image image)

◆ ReadBlobLongLong()

◆ ReadBlobLSBLong()

MagickExport unsigned int ReadBlobLSBLong ( Image image)

◆ ReadBlobLSBShort()

MagickExport unsigned short ReadBlobLSBShort ( Image image)

◆ ReadBlobLSBSignedLong()

MagickExport signed int ReadBlobLSBSignedLong ( Image image)

References ReadBlobLSBLong().

◆ ReadBlobLSBSignedShort()

MagickExport signed short ReadBlobLSBSignedShort ( Image image)

References ReadBlobLSBShort().

◆ ReadBlobMSBLong()

MagickExport unsigned int ReadBlobMSBLong ( Image image)

References MagickCoreSignature, ReadBlobStream(), and _Image::signature.

Referenced by ReadBlobMSBSignedLong().

Here is the caller graph for this function:

◆ ReadBlobMSBLongLong()

◆ ReadBlobMSBShort()

MagickExport unsigned short ReadBlobMSBShort ( Image image)

References MagickCoreSignature, ReadBlobStream(), and _Image::signature.

Referenced by ReadBlobMSBSignedShort().

Here is the caller graph for this function:

◆ ReadBlobMSBSignedLong()

MagickExport signed int ReadBlobMSBSignedLong ( Image image)

References ReadBlobMSBLong().

◆ ReadBlobMSBSignedShort()

MagickExport signed short ReadBlobMSBSignedShort ( Image image)

References ReadBlobMSBShort().

◆ ReadBlobShort()

MagickExport unsigned short ReadBlobShort ( Image image)

◆ ReadBlobSignedLong()

MagickExport signed int ReadBlobSignedLong ( Image image)

References ReadBlobLong().

◆ ReadBlobSignedShort()

MagickExport signed short ReadBlobSignedShort ( Image image)

References ReadBlobShort().

◆ ReadBlobStream()

◆ ReadBlobString()

MagickExport char* ReadBlobString ( Image image,
char *  string 
)

◆ ReferenceBlob()

MagickExport BlobInfo* ReferenceBlob ( BlobInfo blob)

References _BlobInfo::debug, GetMagickModule, LockSemaphoreInfo(), LogMagickEvent(), MagickCoreSignature, MagickFalse, _BlobInfo::reference_count, _BlobInfo::semaphore, _BlobInfo::signature, TraceEvent, and UnlockSemaphoreInfo().

Referenced by AcquireNextImage(), CloneImage(), DuplicateBlob(), and SyncNextImageInList().

Here is the caller graph for this function:

◆ SeekBlob()

◆ SetBlobExempt()

MagickExport void SetBlobExempt ( Image image,
const MagickBooleanType  exempt 
)

References _Image::blob, _Image::debug, _BlobInfo::exempt, _Image::filename, GetMagickModule, LogMagickEvent(), MagickCoreSignature, MagickFalse, _Image::signature, and TraceEvent.

Referenced by AcquireImage().

Here is the caller graph for this function:

◆ SetBlobExtent()

◆ SetStreamBuffering()

static MagickBooleanType SetStreamBuffering ( const ImageInfo image_info,
Image image 
)
inlinestatic

◆ SyncBlob()

◆ TellBlob()

MagickExport MagickOffsetType TellBlob ( const Image image)

References _Image::blob, BlobStream, BZipStream, _Image::debug, FifoStream, _Image::filename, FileStream, GetMagickModule, LogMagickEvent(), magick_restrict, MagickCoreSignature, MagickFalse, PipeStream, _Image::signature, StandardStream, TraceEvent, _BlobInfo::type, UndefinedStream, and ZipStream.

Referenced by SeekBlob().

Here is the caller graph for this function:

◆ ThrowBlobException()

static void ThrowBlobException ( BlobInfo blob_info)
inlinestatic

◆ UnmapBlob()

MagickExport MagickBooleanType UnmapBlob ( void *  map,
const size_t  length 
)

References MagickFalse, and MagickTrue.

Referenced by ConfigureFileToStringInfo(), DestroyBlob(), DestroyMagickMemory(), DestroyMatrixInfo(), DetachBlob(), FileToBlob(), FileToXML(), RelinquishCacheNexusPixels(), RelinquishPixelCachePixels(), RelinquishStreamPixels(), RelinquishVirtualMemory(), and SetBlobExtent().

Here is the caller graph for this function:

◆ WriteBlob()

◆ WriteBlobByte()

◆ WriteBlobFloat()

MagickExport ssize_t WriteBlobFloat ( Image image,
const float  value 
)

References WriteBlobLong().

◆ WriteBlobLong()

MagickExport ssize_t WriteBlobLong ( Image image,
const unsigned int  value 
)

◆ WriteBlobLSBLong()

MagickExport ssize_t WriteBlobLSBLong ( Image image,
const unsigned int  value 
)

◆ WriteBlobLSBShort()

MagickExport ssize_t WriteBlobLSBShort ( Image image,
const unsigned short  value 
)

◆ WriteBlobLSBSignedLong()

MagickExport ssize_t WriteBlobLSBSignedLong ( Image image,
const signed int  value 
)

◆ WriteBlobLSBSignedShort()

MagickExport ssize_t WriteBlobLSBSignedShort ( Image image,
const signed short  value 
)

◆ WriteBlobMSBLong()

MagickExport ssize_t WriteBlobMSBLong ( Image image,
const unsigned int  value 
)

◆ WriteBlobMSBLongLong()

MagickExport ssize_t WriteBlobMSBLongLong ( Image image,
const MagickSizeType  value 
)

◆ WriteBlobMSBShort()

MagickExport ssize_t WriteBlobMSBShort ( Image image,
const unsigned short  value 
)

◆ WriteBlobMSBSignedLong()

MagickExport ssize_t WriteBlobMSBSignedLong ( Image image,
const signed int  value 
)

◆ WriteBlobMSBSignedShort()

MagickExport ssize_t WriteBlobMSBSignedShort ( Image image,
const signed short  value 
)

◆ WriteBlobShort()

MagickExport ssize_t WriteBlobShort ( Image image,
const unsigned short  value 
)

◆ WriteBlobStream()

◆ WriteBlobString()

MagickExport ssize_t WriteBlobString ( Image image,
const char *  string 
)