00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef BITMAPIMAGE_HEADER_READ
00029 #define BITMAPIMAGE_HEADER_READ 1
00030
00031
#include "Byte.h"
00032
#include "verbosity.h"
00033
#include "Bitmap.h"
00034
00035 class BitmapImage {
00036
public:
00037
BitmapImage(
const int w,
const int h,
const int bpp=1);
00038
virtual ~BitmapImage();
00039
void setBitmap (
const Byte *B);
00040
void setBitmapRow (
const Byte *B);
00041
00042 void setTransparent (
const bool sw) {
isTransparent_ = sw; };
00043 void setRGB (
const bool fg,
const Bitmap::BitmapColour* rgb) {
00044
if (fg)
00045 {
00046
fg_.
red=rgb->
red;
fg_.
green=rgb->
green;
fg_.
blue=rgb->
blue;
00047 }
00048
else
00049 {
00050
bg_.
red=rgb->
red;
bg_.
green=rgb->
green;
bg_.
blue=rgb->
blue;
00051 }
00052 };
00053
virtual void write (
const string filename) = 0;
00054
virtual string
fileExtension() const = 0;
00055
00056
00057 enum infoFields {
SOFTWAREVERSION,
INPUTFILENAME,
FURTHERINFO};
00058
static void setInfo (
const infoFields which,
const string *s);
00059
00060
static BitmapImage *newBitmapImage
00061 (
const string format,
const int w,
const int h,
const int bpp=1);
00062
static bool supportedBitmapImage (
const string format);
00063
00064
static const char*
firstBitmapImageFormat();
00065
00066
00067
static const char*
nextBitmapImageFormat();
00068 static void verbosity (
const verbosities level) {
verbosity_ = level; }
00069
00070
protected:
00071 int w_,
h_;
00072 const int bpp_;
00073 const Byte *
bitmap_;
00074 Byte *
allocBitmap_;
00075 bool myBitmap_;
00076 int bitmapRows_;
00077 bool isTransparent_;
00078
00079 Bitmap::BitmapColour fg_,
bg_;
00080
00081
static const string *
softwareversion;
00082
static const string *
inputfilename;
00083
static const string *
furtherinfo;
00084
static const char*
formats[];
00085
static const int nformats;
00086
static int iterator_index;
00087
static verbosities verbosity_;
00088 };
00089
#endif // #ifndef BITMAPIMAGE_HEADER_READ