VideoTools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
grimagebuffer.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2017 Graeme Walker
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 ///
18 /// \file grimagebuffer.h
19 ///
20 
21 #ifndef GR_IMAGE_BUFFER__H
22 #define GR_IMAGE_BUFFER__H
23 
24 #include "gdef.h"
25 #include "grvectors.h"
26 
27 namespace Gr
28 {
29  /// An ImageBuffer is used to hold raw image data, typically in more than
30  /// one chunk. The (extrinsic) data format can be 'raw', jpeg, png, pnm, etc.
31  ///
32  /// In the 'raw' format each chunk contains exactly one row of image pixels
33  /// ('segmented'), or alternatively the first chunk contains the whole
34  /// image ('contiguous'). The Gr::ImageData class is normally used to wrap
35  /// image buffers that are in the raw format.
36  ///
37  /// Free functions in the Gr::imagebuffer namespace are used for low-level
38  /// operations on the contrete class, and a traits class in the Gr::traits
39  /// namespace is used to define associated streambuf and iterator types.
40  /// Standard streaming operators are also defined.
41  ///
42  /// The current definition is a vector-of-vectors, but a vector of malloced
43  /// buffers might be a good alternative. Classes affected by the choice of
44  /// image buffer type include Gr::ImageData, GNet::SocketProtocol,
45  /// G::Publisher and G::FatPipe.
46  ///
47  typedef Vectors ImageBuffer ;
48 }
49 
50 #endif
Vectors ImageBuffer
An ImageBuffer is used to hold raw image data, typically in more than one chunk.
Definition: grimagebuffer.h:47
std::vector< std::vector< char > > Vectors
A candidate for Gr::ImageBuffer that uses nested std::vectors.
Definition: grvectors.h:39