#include <BmpFile.h>
Inheritance diagram for BmpFile:
Public Member Functions | |
BmpFile (void) | |
BmpFile (BinaryIO *io) | |
~BmpFile (void) | |
void | read (BinaryIO *io) |
void | write (void) |
std::list< CvrStgFile::Property > | getProperties (void) const |
std::vector< MatchingAlgorithm * > | getMatchingAlgorithms (Graph *g, Matching *m) const |
unsigned long | getNumSamples (void) const |
void | replaceSample (const SamplePos pos, const SampleValue *s) |
SampleValue * | getSampleValue (SamplePos pos) const |
std::vector< SampleValueAdjacencyList * > | calcSVAdjacencyLists (const std::vector< SampleValue * > &svs) const |
unsigned short | getBitCount (void) const |
unsigned long | getWidth (void) const |
unsigned long | getHeight (void) const |
ColorPalette * | getPalette (void) const |
Protected Types | |
typedef BmpFile::struct_BITMAPFILEHEADER | BITMAPFILEHEADER |
typedef BmpFile::struct_BITMAPINFOHEADER | BITMAPINFOHEADER |
typedef BmpFile::struct_BITMAPCOREHEADER | BITMAPCOREHEADER |
Private Types | |
enum | SUBFORMAT { WIN, OS2 } |
Private Member Functions | |
void | readheaders () |
void | bmpwin_readheaders () |
void | bmpos2_readheaders () |
void | writeheaders () |
void | bmpwin_writeheaders () |
void | bmpos2_writeheaders () |
void | readdata () |
void | writedata () |
void | calcIndex (SamplePos pos, unsigned long *index, unsigned short *firstbit) const |
unsigned long | calcLinelength () |
SUBFORMAT | getSubformat (void) const |
Private Attributes | |
SUBFORMAT | subformat |
BITMAPFILEHEADER | bmfh |
BITMAPINFOHEADER | bmih |
BITMAPCOREHEADER | bmch |
ColorPalette * | Palette |
std::vector< std::vector< unsigned char > > | bitmap |
std::vector< BYTE > | BitmapData |
std::vector< BYTE > | atend |
contains bytes that are appended at the end of the bitmap data (some image editors apparently do this) | |
Static Private Attributes | |
static const unsigned int | IdBm = 19778 |
static const unsigned short | SizeBMFILEHEADER = 14 |
static const unsigned short | SizeBMINFOHEADER = 40 |
static const unsigned short | SizeBMCOREHEADER = 12 |
static const unsigned int | COMPRESSION_BI_RGB = 0 |
static const unsigned short | SamplesPerVertex_SmallPalette = 2 |
static const unsigned short | SamplesPerVertex_LargePalette = 3 |
static const unsigned short | SamplesPerVertex_RGB = 2 |
static const UWORD32 | Radius_Palette = 400 |
the default radius for palette images (400 = 20^2) | |
static const UWORD32 | Radius_RGB = 100 |
the default radius for RGB images (100 = 10^2) | |
static const EmbValue | EmbValueModulus_SmallPalette = 2 |
static const EmbValue | EmbValueModulus_LargePalette = 4 |
static const EmbValue | EmbValueModulus_RGB = 4 |
Classes | |
struct | struct_BITMAPCOREHEADER |
struct | struct_BITMAPFILEHEADER |
struct | struct_BITMAPINFOHEADER |
typedef struct BmpFile::struct_BITMAPFILEHEADER BmpFile::BITMAPFILEHEADER [protected] |
typedef struct BmpFile::struct_BITMAPINFOHEADER BmpFile::BITMAPINFOHEADER [protected] |
typedef struct BmpFile::struct_BITMAPCOREHEADER BmpFile::BITMAPCOREHEADER [protected] |
enum BmpFile::SUBFORMAT [private] |
BmpFile::BmpFile | ( | void | ) |
BmpFile::BmpFile | ( | BinaryIO * | io | ) |
BmpFile::~BmpFile | ( | void | ) |
void BmpFile::read | ( | BinaryIO * | io | ) | [virtual] |
Reimplemented from CvrStgFile.
void BmpFile::write | ( | void | ) | [virtual] |
Reimplemented from CvrStgFile.
std::list< CvrStgFile::Property > BmpFile::getProperties | ( | void | ) | const [virtual] |
Implements CvrStgFile.
std::vector< MatchingAlgorithm * > BmpFile::getMatchingAlgorithms | ( | Graph * | g, | |
Matching * | m | |||
) | const [virtual] |
get recommended list of matching algorithms
m | an empty matching - will be used in construction of MatchingAlgorithm objects |
Reimplemented from CvrStgFile.
unsigned long BmpFile::getNumSamples | ( | void | ) | const [virtual] |
get the number of samples in this CvrStgObject
Implements CvrStgObject.
void BmpFile::replaceSample | ( | const SamplePos | pos, | |
const SampleValue * | s | |||
) | [virtual] |
replace a sample thus (possibly) altering the value of the bit returned by SampleValue->getBit()
pos | the position of the sample (must be in 0...getNumSamples()-1) | |
s | the sample value that should replace the current sample value (must be of correct type for this CvrStgObject) |
Implements CvrStgObject.
SampleValue * BmpFile::getSampleValue | ( | SamplePos | pos | ) | const [virtual] |
get the sample at position pos
pos | the position of a sample (must be in 0...getNumSamples()-1) |
Implements CvrStgObject.
std::vector< SampleValueAdjacencyList * > BmpFile::calcSVAdjacencyLists | ( | const std::vector< SampleValue * > & | svs | ) | const [virtual] |
calculate a vector a SampleValueAdjacencyLists
svs | a vector of unique(!) sample values where svs[i]->getLabel() == i holds for all i |
May be overridden in derived class to provide a faster version.
Reimplemented from CvrStgFile.
unsigned short BmpFile::getBitCount | ( | void | ) | const |
unsigned long BmpFile::getWidth | ( | void | ) | const |
unsigned long BmpFile::getHeight | ( | void | ) | const |
ColorPalette * BmpFile::getPalette | ( | void | ) | const |
void BmpFile::readheaders | ( | ) | [private] |
void BmpFile::bmpwin_readheaders | ( | ) | [private] |
void BmpFile::bmpos2_readheaders | ( | ) | [private] |
void BmpFile::writeheaders | ( | ) | [private] |
void BmpFile::bmpwin_writeheaders | ( | ) | [private] |
void BmpFile::bmpos2_writeheaders | ( | ) | [private] |
void BmpFile::readdata | ( | ) | [private] |
void BmpFile::writedata | ( | ) | [private] |
void BmpFile::calcIndex | ( | SamplePos | pos, | |
unsigned long * | index, | |||
unsigned short * | firstbit | |||
) | const [private] |
translate a sample position into a <index,firstbit> pair "pointing" into the BitmapData array
pos | a sample position | |
index | a pointer to a variable that will contain the array index used to access the pos-th sample | |
firstbit | the firstbit in BitmapData[index] that belongs to the sample with the given position |
unsigned long BmpFile::calcLinelength | ( | ) | [private] |
BmpFile::SUBFORMAT BmpFile::getSubformat | ( | void | ) | const [private] |
const unsigned int BmpFile::IdBm = 19778 [static, private] |
const unsigned short BmpFile::SizeBMFILEHEADER = 14 [static, private] |
const unsigned short BmpFile::SizeBMINFOHEADER = 40 [static, private] |
const unsigned short BmpFile::SizeBMCOREHEADER = 12 [static, private] |
const unsigned int BmpFile::COMPRESSION_BI_RGB = 0 [static, private] |
const unsigned short BmpFile::SamplesPerVertex_SmallPalette = 2 [static, private] |
const unsigned short BmpFile::SamplesPerVertex_LargePalette = 3 [static, private] |
const unsigned short BmpFile::SamplesPerVertex_RGB = 2 [static, private] |
const UWORD32 BmpFile::Radius_Palette = 400 [static, private] |
const UWORD32 BmpFile::Radius_RGB = 100 [static, private] |
const EmbValue BmpFile::EmbValueModulus_SmallPalette = 2 [static, private] |
const EmbValue BmpFile::EmbValueModulus_LargePalette = 4 [static, private] |
const EmbValue BmpFile::EmbValueModulus_RGB = 4 [static, private] |
SUBFORMAT BmpFile::subformat [private] |
BITMAPFILEHEADER BmpFile::bmfh [private] |
BITMAPINFOHEADER BmpFile::bmih [private] |
BITMAPCOREHEADER BmpFile::bmch [private] |
ColorPalette* BmpFile::Palette [private] |
std::vector<std::vector <unsigned char> > BmpFile::bitmap [private] |
contains the bitmap in the following format bitmap[i] is the pixel data of the i-th row of the bitmap bitmap[i][j] is the j-th byte of the pixel data of the i-th row of the bitmap if bitcount is < 8 then bitmap[i][j] contains the pixels as read in from the file (i.e. in the "wrong" direction) this is taken care of in the calcRCB function
std::vector<BYTE> BmpFile::BitmapData [private] |
contains the bitmap data in the same order as read from file (but without padding bytes)
std::vector<BYTE> BmpFile::atend [private] |