]> granicus.if.org Git - imagemagick/blob - MagickCore/blob-private.h
Support Stereo composite operator
[imagemagick] / MagickCore / blob-private.h
1 /*
2   Copyright 1999-2017 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     https://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 private methods.
17 */
18 #ifndef MAGICKCORE_BLOB_PRIVATE_H
19 #define MAGICKCORE_BLOB_PRIVATE_H
20
21 #include "MagickCore/image.h"
22 #include "MagickCore/stream.h"
23 #include "MagickCore/nt-base-private.h"
24
25 #if defined(__cplusplus) || defined(c_plusplus)
26 extern "C" {
27 #endif
28
29 #define MagickMinBlobExtent  32767L
30 #if defined(MAGICKCORE_HAVE_FSEEKO)
31 # define fseek  fseeko
32 # define ftell  ftello
33 #endif
34
35 typedef enum
36 {
37   UndefinedBlobMode,
38   ReadBlobMode,
39   ReadBinaryBlobMode,
40   WriteBlobMode,
41   WriteBinaryBlobMode,
42   AppendBlobMode,
43   AppendBinaryBlobMode
44 } BlobMode;
45
46 typedef enum
47 {
48   UndefinedStream,
49   FileStream,
50   StandardStream,
51   PipeStream,
52   ZipStream,
53   BZipStream,
54   FifoStream,
55   BlobStream,
56   CustomStream
57 } StreamType;
58
59 extern MagickExport BlobInfo
60   *CloneBlobInfo(const BlobInfo *),
61   *ReferenceBlob(BlobInfo *);
62
63 extern MagickExport char
64   *ReadBlobString(Image *,char *);
65
66 extern MagickExport const struct stat
67   *GetBlobProperties(const Image *);
68
69 extern MagickExport const void
70   *ReadBlobStream(Image *,const size_t,void *,ssize_t *);
71
72 extern MagickExport double
73   ReadBlobDouble(Image *);
74
75 extern MagickExport float
76   ReadBlobFloat(Image *);
77
78 extern MagickExport int
79   EOFBlob(const Image *),
80   ReadBlobByte(Image *);
81
82 extern MagickExport MagickBooleanType
83   CloseBlob(Image *),
84   DiscardBlobBytes(Image *,const MagickSizeType),
85   OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
86   SetBlobExtent(Image *,const MagickSizeType),
87   UnmapBlob(void *,const size_t);
88
89 extern MagickExport MagickOffsetType
90   SeekBlob(Image *,const MagickOffsetType,const int),
91   TellBlob(const Image *);
92
93 extern MagickExport MagickSizeType
94   ReadBlobLongLong(Image *),
95   ReadBlobMSBLongLong(Image *);
96
97 extern MagickExport signed int
98   ReadBlobLSBSignedLong(Image *),
99   ReadBlobMSBSignedLong(Image *),
100   ReadBlobSignedLong(Image *);
101
102 extern MagickExport signed short
103   ReadBlobLSBSignedShort(Image *),
104   ReadBlobMSBSignedShort(Image *),
105   ReadBlobSignedShort(Image *);
106
107 extern MagickExport ssize_t
108   ReadBlob(Image *,const size_t,void *),
109   WriteBlob(Image *,const size_t,const void *),
110   WriteBlobByte(Image *,const unsigned char),
111   WriteBlobFloat(Image *,const float),
112   WriteBlobLong(Image *,const unsigned int),
113   WriteBlobLongLong(Image *,const MagickSizeType),
114   WriteBlobShort(Image *,const unsigned short),
115   WriteBlobSignedLong(Image *,const signed int),
116   WriteBlobLSBLong(Image *,const unsigned int),
117   WriteBlobLSBShort(Image *,const unsigned short),
118   WriteBlobLSBSignedLong(Image *,const signed int),
119   WriteBlobLSBSignedShort(Image *,const signed short),
120   WriteBlobMSBLong(Image *,const unsigned int),
121   WriteBlobMSBShort(Image *,const unsigned short),
122   WriteBlobMSBSignedShort(Image *,const signed short),
123   WriteBlobString(Image *,const char *);
124
125 extern MagickExport unsigned int
126   ReadBlobLong(Image *),
127   ReadBlobLSBLong(Image *),
128   ReadBlobMSBLong(Image *);
129
130 extern MagickExport unsigned short
131   ReadBlobShort(Image *),
132   ReadBlobLSBShort(Image *),
133   ReadBlobMSBShort(Image *);
134
135 extern MagickExport void
136   AttachBlob(BlobInfo *,const void *,const size_t),
137   AttachCustomStream(BlobInfo *,CustomStreamInfo *),
138   *DetachBlob(BlobInfo *),
139   DisassociateBlob(Image *),
140   GetBlobInfo(BlobInfo *),
141   *MapBlob(int,const MapMode,const MagickOffsetType,const size_t),
142   MSBOrderLong(unsigned char *,const size_t),
143   MSBOrderShort(unsigned char *,const size_t);
144
145 #if defined(__cplusplus) || defined(c_plusplus)
146 }
147 #endif
148
149 #endif