NCBI C++ ToolKit
image_io_handler.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef UTIL_IMAGE__IMAGE_IO_HANDLER__HPP
2 #define UTIL_IMAGE__IMAGE_IO_HANDLER__HPP
3 
4 /* $Id: image_io_handler.hpp 33815 2007-05-04 17:18:18Z kazimird $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Authors: Mike DiCuccio
30  *
31  * File Description:
32  * class CImageIOHandler -- abstract interface definition for image readers
33  * and writers
34  */
35 
36 #include <corelib/ncbiobj.hpp>
37 #include <util/image/image_io.hpp>
38 #include <string>
39 
41 
42 class CImage;
43 
44 
45 ///
46 /// class CImageIOHandler
47 /// This is the base class for all image I/O handlers, and defines the standard
48 /// interface required for a class that supports reading and writing an image
49 ///
50 
51 class CImageIOHandler : public CObject
52 {
53 public:
54 
55  virtual ~CImageIOHandler();
56 
57  /// Read an entire image from a stream, returning a pointer to the image.
58  /// The callee is responsible for cleaning up the image
59  virtual CImage* ReadImage(CNcbiIstream& istr) = 0;
60 
61  /// Read a portion of an image from a stream, returning a pointer to the
62  /// image. The callee is responsible for cleaning up the image
63  virtual CImage* ReadImage(CNcbiIstream& istr,
64  size_t x, size_t y, size_t w, size_t h) = 0;
65 
66  /// Read a portion of an image from a stream, returning a pointer to the
67  /// image. The callee is responsible for cleaning up the image
68  virtual bool ReadImageInfo(CNcbiIstream& istr,
69  size_t* width, size_t* height, size_t* depth) = 0;
70 
71  /// Read a scanline of an image from a file. This will come back as a
72  /// single string of unsigned characters; the order is RGBRGBRGB...
73  virtual void ReadScanLine(CNcbiIstream& /* istr */,
74  vector<unsigned char>& /* data */) {}
75 
76  /// write images to file in HANDLER format
77  virtual void WriteImage(const CImage& image,
78  CNcbiOstream& ostr,
80  virtual void WriteImage(const CImage& image,
81  CNcbiOstream& ostr,
82  size_t x, size_t y, size_t w, size_t h,
84 
85 };
86 
87 
89 
90 #endif /// UTIL_IMAGE__IMAGE_IO_HANDLER__HPP
class CImageIOHandler This is the base class for all image I/O handlers, and defines the standard int...
virtual CImage * ReadImage(CNcbiIstream &istr, size_t x, size_t y, size_t w, size_t h)=0
Read a portion of an image from a stream, returning a pointer to the image.
virtual void WriteImage(const CImage &image, CNcbiOstream &ostr, size_t x, size_t y, size_t w, size_t h, CImageIO::ECompress compress)=0
virtual ~CImageIOHandler()
virtual CImage * ReadImage(CNcbiIstream &istr)=0
Read an entire image from a stream, returning a pointer to the image.
virtual void ReadScanLine(CNcbiIstream &, vector< unsigned char > &)
Read a scanline of an image from a file.
virtual bool ReadImageInfo(CNcbiIstream &istr, size_t *width, size_t *height, size_t *depth)=0
Read a portion of an image from a stream, returning a pointer to the image.
virtual void WriteImage(const CImage &image, CNcbiOstream &ostr, CImageIO::ECompress compress)=0
write images to file in HANDLER format
CImage –.
Definition: Image.hpp:66
CObject –.
Definition: ncbiobj.hpp:180
static unsigned char depth[2 *(256+1+29)+1]
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
Definition: ncbistre.hpp:149
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
Definition: ncbistre.hpp:146
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
#define compress
Definition: zconf_cf.h:39
Modified on Sat Jun 15 11:51:19 2024 by modify_doxy.py rev. 669887