Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

FBitmap.h

Go to the documentation of this file.
00001 #ifndef FBITMAP_H_FILE
00002 #define FBITMAP_H_FILE
00003 
00004 #include "FBase.h"
00005 #include <iostream>
00006 #include <vector>
00007 
00008 class FlashTagDefineBitsJPEG1  : public FlashTag, public FlashIDEnabled
00009 {
00010 DEFINE_RW_INTERFACE
00011 FlashTagDefineBitsJPEG1() {}
00012 public:
00013         FlashTagDefineBitsJPEG1(unsigned char *_data, UDWORD _len) : data(_data), len(_len) {}
00014 
00015         friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsJPEG1 &data);
00016         friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsJPEG1 &data);
00017         friend class FlashImporter;
00018 
00019         const unsigned char *GetJPEGData() { return data; }
00020         UDWORD GetJPEGDataSize() { return len; }
00021 
00022 private:        
00023         gc_vector<unsigned char *> datagc;
00024         unsigned char *data;
00025         UDWORD len;
00026 };
00027 
00028 class FlashTagJPEGTables  : public FlashTag
00029 {
00030 DEFINE_RW_INTERFACE
00031 FlashTagJPEGTables() {} 
00032 public:
00033         friend class FlashImporter;
00034         FlashTagJPEGTables(unsigned char *_data, UDWORD _len) : data(_data), len(_len) {}
00035 
00036         friend std::ostream &operator << (std::ostream &out, FlashTagJPEGTables &data);
00037         friend std::istream &operator >> (std::istream &in,  FlashTagJPEGTables &data);
00038 
00039         const unsigned char *GetJPEGData() { return data; }
00040         UDWORD GetJPEGDataSize() { return len; }
00041 
00042 private:        
00043         unsigned char *data;
00044         gc_vector<unsigned char *> datagc;
00045         UDWORD len;
00046 };
00047 
00048 class FlashTagDefineBitsJPEG2  : public FlashTag, public FlashIDEnabled
00049 {
00050 DEFINE_RW_INTERFACE
00051 FlashTagDefineBitsJPEG2() {}
00052 public:
00053         FlashTagDefineBitsJPEG2(unsigned char *_JPEGdata, UDWORD _len) : data(_JPEGdata), len(_len) {}
00054 
00055         friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsJPEG2 &data);
00056         friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsJPEG2 &data);
00057         friend class FlashImporter;
00058 
00059         const unsigned char *GetJPEGData() { return data; }
00060         UDWORD GetJPEGDataSize() { return len; }
00061 
00062 private:        
00063         unsigned char *data;
00064         UDWORD len;
00065         gc_vector<unsigned char *> gc;
00066 };
00067 
00068 class FlashTagDefineBitsJPEG3  : public FlashTag, public FlashIDEnabled
00069 {
00070 DEFINE_RW_INTERFACE
00071 FlashTagDefineBitsJPEG3() {}
00072 public:
00073         FlashTagDefineBitsJPEG3(unsigned char *_JPEGdata, UDWORD _len, unsigned char *_TRANSdata2, UDWORD _len2) : data(_JPEGdata), len(_len), data2(_TRANSdata2), len2(_len2) {}
00074 
00075         friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsJPEG3 &data);
00076         friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsJPEG3 &data);
00077         friend class FlashImporter;
00078 
00079         const unsigned char *GetJPEGData() { return data; }
00080         UDWORD GetJPEGDataSize() { return len; }
00081 
00082         const unsigned char *GetAlphaData() { return data2; }
00083         UDWORD GetAlphaDataSize() { return len2; }
00084 
00085 private:        
00086         unsigned char *data;
00087         UDWORD len;
00088         unsigned char *data2;
00089         UDWORD len2;
00090 
00091         gc_vector<unsigned char *> gc;
00092 };
00093 
00094 class FlashZLibBitmapData
00095 {
00096         FlashZLibBitmapData() {}
00097 public: 
00098         FlashZLibBitmapData(unsigned char *_data, UDWORD _len) : withalpha(false), data(_data), len(_len) {}
00099         
00100         void AddColor(FlashRGB &r) { colors.push_back(r); }
00101         void SetAlpha(bool a) { withalpha = a; }
00102         bool GetAlpha() { return withalpha; }
00103         UDWORD GetSize() { return colors.size(); }
00104 
00105         void Write(std::ostream &out, char format);
00106         void Read(std::istream &in, char format, UDWORD size, UDWORD size_buffer);
00107 
00108         const unsigned char *GetData() { return data; }
00109         UDWORD GetDataSize() { return len; }
00110 private:
00111         friend class FlashTagDefineBitsLossless;
00112         friend class FlashTagDefineBitsLossless2;
00113         gc_vector<unsigned char *> gc;
00114         bool withalpha;
00115         UDWORD len;
00116         std::vector<FlashRGB> colors;
00117         
00118         unsigned char *data;
00119 };
00120 
00121 class FlashTagDefineBitsLossless : public FlashTag, public FlashIDEnabled
00122 {
00123 DEFINE_RW_INTERFACE
00124 FlashTagDefineBitsLossless() {}
00125 public:
00126         FlashTagDefineBitsLossless(char _format, UWORD _width, UWORD _height, FlashZLibBitmapData &_d)
00127                 :       format(_format), width(_width), height(_height),  d(_d) {}
00128 
00129         friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsLossless &data);
00130         friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsLossless &data);
00131 
00132         int GetFormat() { return format; }
00133         UWORD GetWidth() { return width; }
00134         UWORD GetHeight() { return height; }
00135         FlashZLibBitmapData &GetData() { return d; }
00136 
00137 private:
00138         char format;
00139         UWORD width;
00140         UWORD height;
00141         FlashZLibBitmapData d;
00142   
00143 };
00144 
00145 class FlashTagDefineBitsLossless2 : public FlashTag, public FlashIDEnabled
00146 {
00147 DEFINE_RW_INTERFACE
00148 FlashTagDefineBitsLossless2() {}
00149 public:
00150         friend class FlashImporter;
00151         FlashTagDefineBitsLossless2(char _format, UWORD _width, UWORD _height, FlashZLibBitmapData &_d)
00152                 :       format(_format), width(_width), height(_height), d(_d) {}
00153 
00154         friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsLossless2 &data);
00155         friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsLossless2 &data);
00156 
00157 
00158         int GetFormat() { return format; }
00159         UWORD GetWidth() { return width; }
00160         UWORD GetHeight() { return height; }
00161     FlashZLibBitmapData &GetData() { return d; }
00162 
00163 private:
00164         char format;
00165         UWORD width;
00166         UWORD height;
00167         FlashZLibBitmapData d;
00168 };
00169 
00170 #endif

Generated at Wed Aug 1 13:33:50 2001 for SWFSource by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001