home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / flash078.zip / flashsource-r0_7_8.zip / FBitmap.h < prev    next >
C/C++ Source or Header  |  2001-08-02  |  5KB  |  171 lines

  1. #ifndef FBITMAP_H_FILE
  2. #define FBITMAP_H_FILE
  3.  
  4. #include "FBase.h"
  5. #include <iostream>
  6. #include <vector>
  7.  
  8. class FlashTagDefineBitsJPEG1  : public FlashTag, public FlashIDEnabled
  9. {
  10. DEFINE_RW_INTERFACE
  11. FlashTagDefineBitsJPEG1() {}
  12. public:
  13.     FlashTagDefineBitsJPEG1(unsigned char *_data, UDWORD _len) : data(_data), len(_len) {}
  14.  
  15.     friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsJPEG1 &data);
  16.     friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsJPEG1 &data);
  17.     friend class FlashImporter;
  18.  
  19.     const unsigned char *GetJPEGData() { return data; }
  20.     UDWORD GetJPEGDataSize() { return len; }
  21.  
  22. private:    
  23.     gc_vector<unsigned char *> datagc;
  24.     unsigned char *data;
  25.     UDWORD len;
  26. };
  27.  
  28. class FlashTagJPEGTables  : public FlashTag
  29. {
  30. DEFINE_RW_INTERFACE
  31. FlashTagJPEGTables() {}    
  32. public:
  33.     friend class FlashImporter;
  34.     FlashTagJPEGTables(unsigned char *_data, UDWORD _len) : data(_data), len(_len) {}
  35.  
  36.     friend std::ostream &operator << (std::ostream &out, FlashTagJPEGTables &data);
  37.     friend std::istream &operator >> (std::istream &in,  FlashTagJPEGTables &data);
  38.  
  39.     const unsigned char *GetJPEGData() { return data; }
  40.     UDWORD GetJPEGDataSize() { return len; }
  41.  
  42. private:    
  43.     unsigned char *data;
  44.     gc_vector<unsigned char *> datagc;
  45.     UDWORD len;
  46. };
  47.  
  48. class FlashTagDefineBitsJPEG2  : public FlashTag, public FlashIDEnabled
  49. {
  50. DEFINE_RW_INTERFACE
  51. FlashTagDefineBitsJPEG2() {}
  52. public:
  53.     FlashTagDefineBitsJPEG2(unsigned char *_JPEGdata, UDWORD _len) : data(_JPEGdata), len(_len) {}
  54.  
  55.     friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsJPEG2 &data);
  56.     friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsJPEG2 &data);
  57.     friend class FlashImporter;
  58.  
  59.     const unsigned char *GetJPEGData() { return data; }
  60.     UDWORD GetJPEGDataSize() { return len; }
  61.  
  62. private:    
  63.     unsigned char *data;
  64.     UDWORD len;
  65.     gc_vector<unsigned char *> gc;
  66. };
  67.  
  68. class FlashTagDefineBitsJPEG3  : public FlashTag, public FlashIDEnabled
  69. {
  70. DEFINE_RW_INTERFACE
  71. FlashTagDefineBitsJPEG3() {}
  72. public:
  73.     FlashTagDefineBitsJPEG3(unsigned char *_JPEGdata, UDWORD _len, unsigned char *_TRANSdata2, UDWORD _len2) : data(_JPEGdata), len(_len), data2(_TRANSdata2), len2(_len2) {}
  74.  
  75.     friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsJPEG3 &data);
  76.     friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsJPEG3 &data);
  77.     friend class FlashImporter;
  78.  
  79.     const unsigned char *GetJPEGData() { return data; }
  80.     UDWORD GetJPEGDataSize() { return len; }
  81.  
  82.     const unsigned char *GetAlphaData() { return data2; }
  83.     UDWORD GetAlphaDataSize() { return len2; }
  84.  
  85. private:    
  86.     unsigned char *data;
  87.     UDWORD len;
  88.     unsigned char *data2;
  89.     UDWORD len2;
  90.  
  91.     gc_vector<unsigned char *> gc;
  92. };
  93.  
  94. class FlashZLibBitmapData
  95. {
  96.     FlashZLibBitmapData() {}
  97. public:    
  98.     FlashZLibBitmapData(unsigned char *_data, UDWORD _len) : withalpha(false), data(_data), len(_len) {}
  99.     
  100.     void AddColor(FlashRGB &r) { colors.push_back(r); }
  101.     void SetAlpha(bool a) { withalpha = a; }
  102.     bool GetAlpha() { return withalpha; }
  103.     UDWORD GetSize() { return colors.size(); }
  104.  
  105.     void Write(std::ostream &out, char format);
  106.     void Read(std::istream &in, char format, UDWORD size, UDWORD size_buffer);
  107.  
  108.     const unsigned char *GetData() { return data; }
  109.     UDWORD GetDataSize() { return len; }
  110. private:
  111.     friend class FlashTagDefineBitsLossless;
  112.     friend class FlashTagDefineBitsLossless2;
  113.     gc_vector<unsigned char *> gc;
  114.     bool withalpha;
  115.     std::vector<FlashRGB> colors;
  116.     
  117.     unsigned char *data;
  118.         UDWORD len;
  119. };
  120.  
  121. class FlashTagDefineBitsLossless : public FlashTag, public FlashIDEnabled
  122. {
  123. DEFINE_RW_INTERFACE
  124. FlashTagDefineBitsLossless() {}
  125. public:
  126.     FlashTagDefineBitsLossless(char _format, UWORD _width, UWORD _height, FlashZLibBitmapData &_d)
  127.         :    format(_format), width(_width), height(_height),  d(_d) {}
  128.  
  129.     friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsLossless &data);
  130.     friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsLossless &data);
  131.  
  132.     int GetFormat() { return format; }
  133.     UWORD GetWidth() { return width; }
  134.     UWORD GetHeight() { return height; }
  135.     FlashZLibBitmapData &GetData() { return d; }
  136.  
  137. private:
  138.     char format;
  139.     UWORD width;
  140.     UWORD height;
  141.     FlashZLibBitmapData d;
  142.   
  143. };
  144.  
  145. class FlashTagDefineBitsLossless2 : public FlashTag, public FlashIDEnabled
  146. {
  147. DEFINE_RW_INTERFACE
  148. FlashTagDefineBitsLossless2() {}
  149. public:
  150.     friend class FlashImporter;
  151.     FlashTagDefineBitsLossless2(char _format, UWORD _width, UWORD _height, FlashZLibBitmapData &_d)
  152.         :    format(_format), width(_width), height(_height), d(_d) {}
  153.  
  154.     friend std::ostream &operator << (std::ostream &out, FlashTagDefineBitsLossless2 &data);
  155.     friend std::istream &operator >> (std::istream &in,  FlashTagDefineBitsLossless2 &data);
  156.  
  157.  
  158.     int GetFormat() { return format; }
  159.     UWORD GetWidth() { return width; }
  160.     UWORD GetHeight() { return height; }
  161.     FlashZLibBitmapData &GetData() { return d; }
  162.  
  163. private:
  164.     char format;
  165.     UWORD width;
  166.     UWORD height;
  167.     FlashZLibBitmapData d;
  168. };
  169.  
  170. #endif
  171.