]> granicus.if.org Git - imagemagick/blob - MagickCore/blob.h
3e28e983046361f91b80d70f1616e6e5088a1894
[imagemagick] / MagickCore / blob.h
1 /*
2   Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4   
5   You may not use this file except in compliance with the License.
6   obtain a copy of the License at
7   
8     http://www.imagemagick.org/script/license.php
9   
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15
16   MagickCore Binary Large OBjects methods.
17 */
18 #ifndef _MAGICKCORE_BLOB_H
19 #define _MAGICKCORE_BLOB_H
20
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24
25 #include "MagickCore/image.h"
26 #include "MagickCore/stream.h"
27
28 #define MagickMaxBufferExtent  (32*8192)
29
30 typedef enum
31 {
32   UndefinedBlobMode,
33   ReadBlobMode,
34   ReadBinaryBlobMode,
35   WriteBlobMode,
36   WriteBinaryBlobMode,
37   AppendBlobMode,
38   AppendBinaryBlobMode
39 } BlobMode;
40
41 typedef enum
42 {
43   ReadMode,
44   WriteMode,
45   IOMode
46 } MapMode;
47
48 typedef int
49   *(*BlobFifo)(const Image *,const void *,const size_t);
50
51 extern MagickExport BlobInfo
52   *CloneBlobInfo(const BlobInfo *),
53   *ReferenceBlob(BlobInfo *);
54
55 extern MagickExport char
56   *ReadBlobString(Image *,char *);
57
58 extern MagickExport double
59   ReadBlobDouble(Image *);
60
61 extern MagickExport FILE
62   *GetBlobFileHandle(const Image *);
63
64 extern MagickExport float
65   ReadBlobFloat(Image *);
66
67 extern MagickExport Image
68   *BlobToImage(const ImageInfo *,const void *,const size_t,ExceptionInfo *),
69   *PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *);
70
71 extern MagickExport int
72   EOFBlob(const Image *),
73   ReadBlobByte(Image *);
74
75 extern MagickExport MagickBooleanType
76   BlobToFile(char *,const void *,const size_t,ExceptionInfo *),
77   CloseBlob(Image *),
78   DiscardBlobBytes(Image *,const MagickSizeType),
79   FileToImage(Image *,const char *,ExceptionInfo *),
80   ImageToFile(Image *,char *,ExceptionInfo *),
81   InjectImageBlob(const ImageInfo *,Image *,Image *,const char *,
82     ExceptionInfo *),
83   OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
84   UnmapBlob(void *,const size_t);
85
86 extern MagickExport MagickOffsetType
87   SeekBlob(Image *,const MagickOffsetType,const int),
88   TellBlob(const Image *);
89
90 extern MagickExport MagickSizeType
91   GetBlobSize(const Image *),
92   ReadBlobLongLong(Image *),
93   ReadBlobMSBLongLong(Image *);
94
95 extern MagickExport ssize_t
96   ReadBlob(Image *,const size_t,unsigned char *),
97   WriteBlob(Image *,const size_t,const unsigned char *),
98   WriteBlobByte(Image *,const unsigned char),
99   WriteBlobFloat(Image *,const float),
100   WriteBlobLong(Image *,const unsigned int),
101   WriteBlobShort(Image *,const unsigned short),
102   WriteBlobLSBLong(Image *,const unsigned int),
103   WriteBlobLSBShort(Image *,const unsigned short),
104   WriteBlobMSBLong(Image *,const unsigned int),
105   WriteBlobMSBLongLong(Image *,const MagickSizeType),
106   WriteBlobMSBShort(Image *,const unsigned short),
107   WriteBlobString(Image *,const char *);
108
109 extern MagickExport unsigned char
110   *DetachBlob(BlobInfo *),
111   *FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *),
112   *GetBlobStreamData(const Image *),
113   *ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
114   *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
115   *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
116
117 extern MagickExport unsigned int
118   ReadBlobLong(Image *),
119   ReadBlobLSBLong(Image *),
120   ReadBlobMSBLong(Image *);
121
122 extern MagickExport unsigned short
123   ReadBlobShort(Image *),
124   ReadBlobLSBShort(Image *),
125   ReadBlobMSBShort(Image *);
126
127 extern MagickExport void
128   AttachBlob(BlobInfo *,const void *,const size_t),
129   DestroyBlob(Image *),
130   DuplicateBlob(Image *,const Image *),
131   MSBOrderLong(unsigned char *,const size_t),
132   MSBOrderShort(unsigned char *,const size_t);
133
134 #if defined(__cplusplus) || defined(c_plusplus)
135 }
136 #endif
137
138 #endif