|
MagickCore
6.7.5
|
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