VideoTools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Gr Namespace Reference

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)
 

Detailed Description

Static image classes.

Key classes are:

Typedef Documentation

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.