MagickCore  6.7.5
blob.h
Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
00003   dedicated to making software imaging solutions freely available.
00004   
00005   You may not use this file except in compliance with the License.
00006   obtain a copy of the License at
00007   
00008     http://www.imagemagick.org/script/license.php
00009   
00010   Unless required by applicable law or agreed to in writing, software
00011   distributed under the License is distributed on an "AS IS" BASIS,
00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013   See the License for the specific language governing permissions and
00014   limitations under the License.
00015 
00016   MagickCore Binary Large OBjects methods.
00017 */
00018 #ifndef _MAGICKCORE_BLOB_H
00019 #define _MAGICKCORE_BLOB_H
00020 
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024 
00025 #include "MagickCore/image.h"
00026 #include "MagickCore/stream.h"
00027 
00028 #define MagickMaxBufferExtent  (32*8192)
00029 
00030 typedef enum
00031 {
00032   UndefinedBlobMode,
00033   ReadBlobMode,
00034   ReadBinaryBlobMode,
00035   WriteBlobMode,
00036   WriteBinaryBlobMode,
00037   AppendBlobMode,
00038   AppendBinaryBlobMode
00039 } BlobMode;
00040 
00041 typedef enum
00042 {
00043   ReadMode,
00044   WriteMode,
00045   IOMode
00046 } MapMode;
00047 
00048 typedef int
00049   *(*BlobFifo)(const Image *,const void *,const size_t);
00050 
00051 extern MagickExport BlobInfo
00052   *CloneBlobInfo(const BlobInfo *),
00053   *ReferenceBlob(BlobInfo *);
00054 
00055 extern MagickExport char
00056   *ReadBlobString(Image *,char *);
00057 
00058 extern MagickExport double
00059   ReadBlobDouble(Image *);
00060 
00061 extern MagickExport FILE
00062   *GetBlobFileHandle(const Image *);
00063 
00064 extern MagickExport float
00065   ReadBlobFloat(Image *);
00066 
00067 extern MagickExport Image
00068   *BlobToImage(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
00069   *PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *);
00070 
00071 extern MagickExport int
00072   EOFBlob(const Image *),
00073   ReadBlobByte(Image *);
00074 
00075 extern MagickExport MagickBooleanType
00076   BlobToFile(char *,const void *,const size_t,ExceptionInfo *),
00077   CloseBlob(Image *),
00078   DiscardBlobBytes(Image *,const MagickSizeType),
00079   FileToImage(Image *,const char *,ExceptionInfo *),
00080   ImageToFile(Image *,char *,ExceptionInfo *),
00081   InjectImageBlob(const ImageInfo *,Image *,Image *,const char *,
00082     ExceptionInfo *),
00083   OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
00084   UnmapBlob(void *,const size_t);
00085 
00086 extern MagickExport MagickOffsetType
00087   SeekBlob(Image *,const MagickOffsetType,const int),
00088   TellBlob(const Image *);
00089 
00090 extern MagickExport MagickSizeType
00091   GetBlobSize(const Image *),
00092   ReadBlobLongLong(Image *),
00093   ReadBlobMSBLongLong(Image *);
00094 
00095 extern MagickExport ssize_t
00096   ReadBlob(Image *,const size_t,unsigned char *),
00097   WriteBlob(Image *,const size_t,const unsigned char *),
00098   WriteBlobByte(Image *,const unsigned char),
00099   WriteBlobFloat(Image *,const float),
00100   WriteBlobLong(Image *,const unsigned int),
00101   WriteBlobShort(Image *,const unsigned short),
00102   WriteBlobLSBLong(Image *,const unsigned int),
00103   WriteBlobLSBShort(Image *,const unsigned short),
00104   WriteBlobMSBLong(Image *,const unsigned int),
00105   WriteBlobMSBLongLong(Image *,const MagickSizeType),
00106   WriteBlobMSBShort(Image *,const unsigned short),
00107   WriteBlobString(Image *,const char *);
00108 
00109 extern MagickExport unsigned char
00110   *DetachBlob(BlobInfo *),
00111   *FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *),
00112   *GetBlobStreamData(const Image *),
00113   *ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
00114   *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
00115   *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
00116 
00117 extern MagickExport unsigned int
00118   ReadBlobLong(Image *),
00119   ReadBlobLSBLong(Image *),
00120   ReadBlobMSBLong(Image *);
00121 
00122 extern MagickExport unsigned short
00123   ReadBlobShort(Image *),
00124   ReadBlobLSBShort(Image *),
00125   ReadBlobMSBShort(Image *);
00126 
00127 extern MagickExport void
00128   AttachBlob(BlobInfo *,const void *,const size_t),
00129   DestroyBlob(Image *),
00130   DuplicateBlob(Image *,const Image *),
00131   MSBOrderLong(unsigned char *,const size_t),
00132   MSBOrderShort(unsigned char *,const size_t);
00133 
00134 #if defined(__cplusplus) || defined(c_plusplus)
00135 }
00136 #endif
00137 
00138 #endif