apngasm
 All Classes Namespaces Functions Variables
apngframe.h
1 #ifndef _APNGFRAME_H_
2 #define _APNGFRAME_H_
3 
4 #include <string>
5 #include "apngasm-conf.h"
6 
7 namespace apngasm {
8 
9  const unsigned DEFAULT_FRAME_NUMERATOR = 100;
10  const unsigned DEFAULT_FRAME_DENOMINATOR = 1000;
11 
12  typedef struct { unsigned char r, g, b; } rgb;
13  typedef struct { unsigned char r, g, b, a; } rgba;
14 
15  //Individual APNG frame
16  class APNGASM_DECLSPEC APNGFrame
17  {
18  public:
19  // Raw pixel data
20  unsigned char* pixels(unsigned char* setPixels = NULL);
21  unsigned char* _pixels;
22 
23  // Width and Height
24  unsigned int width(unsigned int setWidth = 0);
25  unsigned int height(unsigned int setHeight = 0);
26  unsigned int _width;
27  unsigned int _height;
28 
29  // PNG color type
30  unsigned char colorType(unsigned char setColorType = 255);
31  unsigned char _colorType;
32 
33  // Palette into
34  rgb* palette(rgb* setPalette = NULL);
35  rgb _palette[256];
36 
37  //Transparency info
38  unsigned char* transparency(unsigned char* setTransparency = NULL);
39  unsigned char _transparency[256];
40 
41  //Sizes for palette and transparency records
42  int paletteSize(int setPaletteSize = 0);
43  int _paletteSize;
44 
45  int transparencySize(int setTransparencySize = 0);
46  int _transparencySize;
47 
48  //Delay is numerator/denominator ratio, in seconds
49  unsigned int delayNum(unsigned int setDelayNum = 0);
50  unsigned int _delayNum;
51 
52  unsigned int delayDen(unsigned int setDelayDen = 0);
53  unsigned int _delayDen;
54 
55  unsigned char** rows(unsigned char** setRows = NULL);
56  unsigned char ** _rows;
57 
61  APNGFrame();
62 
69  APNGFrame(const std::string &filePath, unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR);
70 
79  APNGFrame(rgb *pixels, unsigned int width, unsigned int height, unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR);
80 
90  APNGFrame(rgb *pixels, unsigned int width, unsigned int height, rgb *trns_color = NULL, unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR);
91 
100  APNGFrame(rgba *pixels, unsigned int width, unsigned int height, unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR);
101 
107  bool save(const std::string& outPath) const;
108 
109  private:
110  }; // class APNGFrame
111 
112 } // namespace apngasm
113 
114 #endif /* _APNGFRAME_H_ */
Definition: apngframe.h:12
Definition: apngframe.h:13
Definition: apngframe.h:16
const unsigned DEFAULT_FRAME_DENOMINATOR
The default denominator for the frame delay fraction.
Definition: apngframe.h:10
const unsigned DEFAULT_FRAME_NUMERATOR
The default numerator for the frame delay fraction.
Definition: apngframe.h:9