2020-12-23 11:12:49 +00:00
|
|
|
#include <qpdf/QPDFStreamFilter.hh>
|
|
|
|
#include <memory>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#ifndef SF_FLATELZWDECODE_HH
|
2022-04-02 21:14:10 +00:00
|
|
|
# define SF_FLATELZWDECODE_HH
|
2020-12-23 11:12:49 +00:00
|
|
|
|
|
|
|
class SF_FlateLzwDecode: public QPDFStreamFilter
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
SF_FlateLzwDecode(bool lzw);
|
|
|
|
virtual ~SF_FlateLzwDecode() = default;
|
|
|
|
|
|
|
|
virtual bool setDecodeParms(QPDFObjectHandle decode_parms);
|
|
|
|
virtual Pipeline* getDecodePipeline(Pipeline* next);
|
|
|
|
|
|
|
|
static std::shared_ptr<QPDFStreamFilter> flate_factory();
|
|
|
|
static std::shared_ptr<QPDFStreamFilter> lzw_factory();
|
|
|
|
|
|
|
|
private:
|
|
|
|
bool lzw;
|
|
|
|
int predictor;
|
|
|
|
int columns;
|
|
|
|
int colors;
|
|
|
|
int bits_per_component;
|
|
|
|
bool early_code_change;
|
|
|
|
std::vector<std::shared_ptr<Pipeline>> pipelines;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // SF_FLATELZWDECODE_HH
|