blob: 8a87b082ecb3fc633c455b581eb6862f01af1ab6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#pragma once
#include "image.h"
#include "reader.h"
#define BIT_BUFFER_SIZE 1024
namespace TehImage
{
typedef enum {
PREDICTOR_TRANSFORM = 0,
COLOR_TRANSFORM = 1,
SUBTRACT_GREEN_TRANSFORM = 2,
COLOR_INDEXING_TRANSFORM = 3,
} TransformType;
class WEBPImage : public Image
{
public:
WEBPImage() = default;
~WEBPImage() = default;
WEBPImage(const Image& other) : Image(other) {}
int readFromFile(std::string filename) override;
int writeToFile(std::string filename) override;
private:
std::unique_ptr<Reader> reader;
uint8_t bitBuffer;
size_t bitBufferPos = 0;
bool readBit();
uint32_t readBits(size_t count);
void readFourCC(char* dest);
void refreshBitBuffer();
};
}
|