diff --git a/MagickCore/blob.h b/MagickCore/blob.h
index 6590ab0..0c55083 100644
--- a/MagickCore/blob.h
+++ b/MagickCore/blob.h
@@ -29,45 +29,107 @@
 
 typedef enum
 {
+  UndefinedBlobMode,
+  ReadBlobMode,
+  ReadBinaryBlobMode,
+  WriteBlobMode,
+  WriteBinaryBlobMode,
+  AppendBlobMode,
+  AppendBinaryBlobMode
+} BlobMode;
+
+typedef enum
+{
   ReadMode,
   WriteMode,
   IOMode
 } MapMode;
 
+typedef int
+  *(*BlobFifo)(const Image *,const void *,const size_t);
+
+extern MagickExport BlobInfo
+  *CloneBlobInfo(const BlobInfo *),
+  *ReferenceBlob(BlobInfo *);
+
+extern MagickExport char
+  *ReadBlobString(Image *,char *);
+
+extern MagickExport double
+  ReadBlobDouble(Image *);
+
 extern MagickExport FILE
   *GetBlobFileHandle(const Image *);
 
+extern MagickExport float
+  ReadBlobFloat(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 *);
+
 extern MagickExport MagickBooleanType
   BlobToFile(char *,const void *,const size_t,ExceptionInfo *),
+  CloseBlob(Image *),
+  DiscardBlobBytes(Image *,const MagickSizeType),
   FileToImage(Image *,const char *),
-  GetBlobError(const Image *),
   ImageToFile(Image *,char *,ExceptionInfo *),
   InjectImageBlob(const ImageInfo *,Image *,Image *,const char *,
     ExceptionInfo *),
-  IsBlobExempt(const Image *),
-  IsBlobSeekable(const Image *),
-  IsBlobTemporary(const Image *);
+  OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
+  UnmapBlob(void *,const size_t);
+
+extern MagickExport MagickOffsetType
+  SeekBlob(Image *,const MagickOffsetType,const int),
+  TellBlob(const Image *);
 
 extern MagickExport MagickSizeType
-  GetBlobSize(const Image *);
+  GetBlobSize(const Image *),
+  ReadBlobLongLong(Image *),
+  ReadBlobMSBLongLong(Image *);
 
-extern MagickExport StreamHandler
-  GetBlobStreamHandler(const Image *);
+extern MagickExport ssize_t
+  ReadBlob(Image *,const size_t,unsigned char *),
+  WriteBlob(Image *,const size_t,const unsigned char *),
+  WriteBlobByte(Image *,const unsigned char),
+  WriteBlobFloat(Image *,const float),
+  WriteBlobLong(Image *,const unsigned int),
+  WriteBlobShort(Image *,const unsigned short),
+  WriteBlobLSBLong(Image *,const unsigned int),
+  WriteBlobLSBShort(Image *,const unsigned short),
+  WriteBlobMSBLong(Image *,const unsigned int),
+  WriteBlobMSBLongLong(Image *,const MagickSizeType),
+  WriteBlobMSBShort(Image *,const unsigned short),
+  WriteBlobString(Image *,const char *);
 
 extern MagickExport unsigned char
+  *DetachBlob(BlobInfo *),
   *FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *),
   *GetBlobStreamData(const Image *),
   *ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
-  *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *);
+  *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *),
+  *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
+
+extern MagickExport unsigned int
+  ReadBlobLong(Image *),
+  ReadBlobLSBLong(Image *),
+  ReadBlobMSBLong(Image *);
+
+extern MagickExport unsigned short
+  ReadBlobShort(Image *),
+  ReadBlobLSBShort(Image *),
+  ReadBlobMSBShort(Image *);
 
 extern MagickExport void
+  AttachBlob(BlobInfo *,const void *,const size_t),
   DestroyBlob(Image *),
   DuplicateBlob(Image *,const Image *),
-  SetBlobExempt(Image *,const MagickBooleanType);
+  MSBOrderLong(unsigned char *,const size_t),
+  MSBOrderShort(unsigned char *,const size_t);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }