VideoTools
|
Static image classes. More...
Namespaces | |
Avc | |
Classes for decoding H.264 parameter sets. | |
ColourSpace | |
Provides rgb/yuv colourspace mapping functions. | |
imagebuffer | |
A namespace for low-level free functions that operate on container classes that are Gr::ImageBuffer candidates. | |
imp | |
A private implementation namespace. | |
traits | |
A namespace for traits classes. | |
Classes | |
class | Colour |
A simple rgb colour structure. More... | |
struct | add_size |
class | Glyph |
A class for mapping characters to 8x8 glyphs. More... | |
class | Histogram |
A class that does histogram equalisation for eight-bit samples. More... | |
class | Image |
A class holding shared read-only image data (Gr::ImageBuffer) and its associated image type (Gr::ImageType). More... | |
class | ImageConverter |
An image format converter that can convert to and from the raw and jpeg formats (only), with scaling and monochrome options. More... | |
class | ImageData |
A holder for image data, having eight bits per sample and one or three channels. More... | |
class | ImageDataWrapper |
A class that wraps a read-only image buffer with a few methods that are similar to those of Gr::ImageData. More... | |
class | ImageDataWriter |
class | ImageDecoder |
An interface for decoding encoded images into a raw format. More... | |
class | ImageType |
An encapsulation of image type, including width, height and number of channels, with support for a string form that encodes the same information. More... | |
class | Jpeg |
A scoping class for other jpeg classes. More... | |
class | JpegInfo |
Provides some basic information about a jpeg image without full decoding. More... | |
class | JpegReader |
A read interface for libjpeg. More... | |
class | JpegWriter |
A write interface for libjpeg. More... | |
class | JpegBufferSource |
A libjpeg 'decompression source manager' that reads from Gr::ImageBuffer. More... | |
class | JpegBufferDestination |
A libjpeg 'decompression destination manager' that writes to Gr::ImageBuffer. More... | |
class | JpegReaderImp |
A private implementation class for Gr::JpegReader. More... | |
class | JpegWriterImp |
A private pimple class for Gr::JpegWriter. More... | |
class | LineDrawImp |
A low-level line-drawing class used in the implementation of Gr::LineDraw. More... | |
class | LineDraw |
A class template for drawing lines in terms of separate horizontal line segments. More... | |
class | Png |
A static class providing information about the png library. More... | |
class | PngInfo |
A class that reads a png header in order to provide the image dimensions. More... | |
class | PngReader |
A read interface for libpng. More... | |
class | PngWriter |
An interface for writing a raw dgb image as a png file. More... | |
class | PngReaderImp |
A private pimple-pattern class for Gr::PngReader. More... | |
class | PngWriterImp |
A private pimple-pattern class for Gr::PngWriter. More... | |
class | PngImp |
A private base class that manages png_struct and png_info structures, and handles error callbacks. More... | |
class | PngTagsImp |
A Gr::PngWriter implementation class that holds tags. More... | |
class | PnmInfo |
A structure holding portable-anymap metadata. More... | |
class | PnmReader |
A static interface for reading portable-anymap (pnm) files. More... | |
class | ScalerImp |
A base class for Gr::Scaler that does scaling using the Bresenham algorithm, but limited to the first quadrant. More... | |
class | Scaler |
A class that allows for iterating over one integer range while accessing values from another, with no requirement for one range to be a multiple of the other, eg. More... | |
Typedefs | |
typedef Vectors | ImageBuffer |
An ImageBuffer is used to hold raw image data, typically in more than one chunk. More... | |
typedef unsigned char | jpeg_byte |
Equivalent to libjpeg JSAMPLE. A static-assert checks the size. | |
typedef std::vector < std::vector< char > > | Vectors |
A candidate for Gr::ImageBuffer that uses nested std::vectors. | |
Functions | |
bool | operator== (const Colour &p, const Colour &q) |
bool | operator!= (const Colour &p, const Colour &q) |
void | swap (Colour &p, Colour &q) |
std::ostream & | operator<< (std::ostream &stream, const Colour &colour) |
int | scaled (int n, int scale) |
size_t | sizet (int a) |
size_t | sizet (int a, int b) |
size_t | sizet (int a, int b, int c) |
std::ostream & | operator<< (std::ostream &stream, const ImageType &s) |
typedef Vectors Gr::ImageBuffer |
An ImageBuffer is used to hold raw image data, typically in more than one chunk.
The (extrinsic) data format can be 'raw', jpeg, png, pnm, etc.
In the 'raw' format each chunk contains exactly one row of image pixels ('segmented'), or alternatively the first chunk contains the whole image ('contiguous'). The Gr::ImageData class is normally used to wrap image buffers that are in the raw format.
Free functions in the Gr::imagebuffer namespace are used for low-level operations on the contrete class, and a traits class in the Gr::traits namespace is used to define associated streambuf and iterator types. Standard streaming operators are also defined.
The current definition is a vector-of-vectors, but a vector of malloced buffers might be a good alternative. Classes affected by the choice of image buffer type include Gr::ImageData, GNet::SocketProtocol, G::Publisher and G::FatPipe.
Definition at line 47 of file grimagebuffer.h.