www.pudn.com > PtOpenGuiSourceCode.zip > blob.h
/*
Image Compression/Decompression Methods.
*/
#ifndef _MAGICK_BLOB_H
#define _MAGICK_BLOB_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include "image.h"
/*
Define declarations.
*/
#define MinBlobExtent 65536L
/*
Enum declarations.
*/
typedef enum
{
UndefinedBlobMode,
ReadBlobMode,
ReadBinaryBlobMode,
WriteBlobMode,
WriteBinaryBlobMode,
IOBinaryBlobMode
} BlobMode;
typedef enum
{
ReadMode,
WriteMode,
IOMode
} MapMode;
typedef enum
{
UndefinedStream,
FileStream,
StandardStream,
PipeStream,
ZipStream,
BZipStream,
FifoStream,
BlobStream
} StreamType;
/*
Typedef declarations.
*/
typedef int
*(*BlobFifo)(const Image *,const void *,const size_t);
typedef struct _BlobInfo
{
size_t
length,
extent,
quantum;
unsigned int
mapped,
eof;
ExtendedSignedIntegralType
offset,
size;
unsigned int
exempt,
status,
temporary;
StreamType
type;
FILE
*file;
StreamHandler
stream;
unsigned char
*data;
SemaphoreInfo
*semaphore;
long
reference_count;
unsigned long
signature;
} BlobInfo;
/*
Blob methods.
*/
extern MagickExport BlobInfo
*CloneBlobInfo(const BlobInfo *),
*ReferenceBlob(BlobInfo *);
extern MagickExport char
*ReadBlobString(Image *,char *);
extern MagickExport ExtendedSignedIntegralType
GetBlobSize(const Image *image),
SeekBlob(Image *,const ExtendedSignedIntegralType,const int),
TellBlob(const Image *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 *),
SyncBlob(Image *);
extern MagickExport size_t
ReadBlob(Image *,const size_t,void *),
WriteBlob(Image *,const size_t,const void *),
WriteBlobByte(Image *,const unsigned long),
WriteBlobLSBLong(Image *,const unsigned long),
WriteBlobLSBShort(Image *,const unsigned long),
WriteBlobMSBLong(Image *,const unsigned long),
WriteBlobMSBShort(Image *,const unsigned long),
WriteBlobString(Image *,const char *);
extern MagickExport StreamType
GetBlobStreamType(const Image *);
extern MagickExport unsigned char
*GetBlobStreamData(const Image *);
extern MagickExport unsigned int
BlobToFile(const char *,const void *,const size_t,ExceptionInfo *),
ImageToFile(Image *,const char *,ExceptionInfo *),
OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
UnmapBlob(void *,const size_t);
extern MagickExport unsigned long
ReadBlobLSBLong(Image *),
ReadBlobMSBLong(Image *);
extern MagickExport unsigned short
ReadBlobLSBShort(Image *),
ReadBlobMSBShort(Image *);
extern MagickExport void
AttachBlob(BlobInfo *,const void *,const size_t),
CloseBlob(Image *),
DestroyBlobInfo(BlobInfo *),
DetachBlob(BlobInfo *),
*FileToBlob(const char *,size_t *,ExceptionInfo *),
GetBlobInfo(BlobInfo *),
*GetConfigureBlob(const char *,char *,size_t *,ExceptionInfo *),
*GetTypeBlob(const char *,char *,size_t *,ExceptionInfo *),
*GetModuleBlob(const char *,char *,size_t *,ExceptionInfo *),
*ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
*MapBlob(int,const MapMode,off_t,size_t),
MSBOrderLong(unsigned char *,const size_t),
MSBOrderShort(unsigned char *,const size_t);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif