/*
- Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
#ifndef _MAGICKCORE_BLOB_H
#define _MAGICKCORE_BLOB_H
+#include "MagickCore/image.h"
+#include "MagickCore/stream.h"
+
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
-#include "MagickCore/image.h"
-#include "MagickCore/stream.h"
+#define MagickMaxBufferExtent (32*8192-2)
-#define MagickMaxBufferExtent (32*8192)
+typedef enum
+{
+ UndefinedBlobMode,
+ ReadBlobMode,
+ ReadBinaryBlobMode,
+ WriteBlobMode,
+ WriteBinaryBlobMode,
+ AppendBlobMode,
+ AppendBinaryBlobMode
+} BlobMode;
typedef enum
{
IOMode
} MapMode;
+typedef int
+ *(*BlobFifo)(const Image *,const void *,const size_t);
+
+extern MagickExport BlobInfo
+ *CloneBlobInfo(const BlobInfo *),
+ *ReferenceBlob(BlobInfo *);
+
+extern MagickExport char
+ *ReadBlobString(Image *,char *);
+
+extern MagickExport double
+ ReadBlobDouble(Image *);
+
extern MagickExport FILE
*GetBlobFileHandle(const Image *);
+extern MagickExport float
+ ReadBlobFloat(Image *);
+
extern MagickExport Image
*BlobToImage(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
*PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *);
+extern MagickExport int
+ EOFBlob(const Image *),
+ ReadBlobByte(Image *);
+
extern MagickExport MagickBooleanType
BlobToFile(char *,const void *,const size_t,ExceptionInfo *),
- FileToImage(Image *,const char *),
- GetBlobError(const Image *),
+ CloseBlob(Image *),
+ DiscardBlobBytes(Image *,const MagickSizeType),
+ FileToImage(Image *,const char *,ExceptionInfo *),
ImageToFile(Image *,char *,ExceptionInfo *),
InjectImageBlob(const ImageInfo *,Image *,Image *,const char *,
ExceptionInfo *),
- IsBlobExempt(const Image *),
- IsBlobSeekable(const Image *),
- IsBlobTemporary(const Image *);
+ OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
+ UnmapBlob(void *,const size_t);
+
+extern MagickExport MagickOffsetType
+ SeekBlob(Image *,const MagickOffsetType,const int),
+ TellBlob(const Image *);
extern MagickExport MagickSizeType
- GetBlobSize(const Image *);
+ GetBlobSize(const Image *),
+ ReadBlobLongLong(Image *),
+ ReadBlobMSBLongLong(Image *);
-extern MagickExport StreamHandler
- GetBlobStreamHandler(const Image *);
+extern MagickExport ssize_t
+ ReadBlob(Image *,const size_t,unsigned char *),
+ WriteBlob(Image *,const size_t,const unsigned char *),
+ WriteBlobByte(Image *,const unsigned char),
+ WriteBlobFloat(Image *,const float),
+ WriteBlobLong(Image *,const unsigned int),
+ WriteBlobShort(Image *,const unsigned short),
+ WriteBlobLSBLong(Image *,const unsigned int),
+ WriteBlobLSBShort(Image *,const unsigned short),
+ WriteBlobMSBLong(Image *,const unsigned int),
+ WriteBlobMSBLongLong(Image *,const MagickSizeType),
+ WriteBlobMSBShort(Image *,const unsigned short),
+ WriteBlobString(Image *,const char *);
extern MagickExport unsigned char
+ *DetachBlob(BlobInfo *),
*FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *),
*GetBlobStreamData(const Image *),
*ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
- *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *);
+ *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
+ *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
+
+extern MagickExport unsigned int
+ ReadBlobLong(Image *),
+ ReadBlobLSBLong(Image *),
+ ReadBlobMSBLong(Image *);
+
+extern MagickExport unsigned short
+ ReadBlobShort(Image *),
+ ReadBlobLSBShort(Image *),
+ ReadBlobMSBShort(Image *);
extern MagickExport void
+ AttachBlob(BlobInfo *,const void *,const size_t),
DestroyBlob(Image *),
DuplicateBlob(Image *,const Image *),
- SetBlobExempt(Image *,const MagickBooleanType);
+ MSBOrderLong(unsigned char *,const size_t),
+ MSBOrderShort(unsigned char *,const size_t);
#if defined(__cplusplus) || defined(c_plusplus)
}