|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef PNGWRITER_H |
|
#define PNGWRITER_H |
|
|
|
#include "poppler-config.h" |
|
#include "poppler_private_export.h" |
|
|
|
#ifdef ENABLE_LIBPNG |
|
|
|
# include "ImgWriter.h" |
|
|
|
struct PNGWriterPrivate; |
|
|
|
class POPPLER_PRIVATE_EXPORT PNGWriter : public ImgWriter |
|
{ |
|
public: |
|
|
|
|
|
|
|
|
|
|
|
|
|
enum Format |
|
{ |
|
RGB, |
|
RGBA, |
|
GRAY, |
|
MONOCHROME, |
|
RGB48 |
|
}; |
|
|
|
explicit PNGWriter(Format format = RGB); |
|
~PNGWriter() override; |
|
|
|
PNGWriter(const PNGWriter &other) = delete; |
|
PNGWriter &operator=(const PNGWriter &other) = delete; |
|
|
|
void setICCProfile(const char *name, unsigned char *data, int size); |
|
void setSRGBProfile(); |
|
|
|
bool init(FILE *f, int width, int height, double hDPI, double vDPI) override; |
|
|
|
bool writePointers(unsigned char **rowPointers, int rowCount) override; |
|
bool writeRow(unsigned char **row) override; |
|
|
|
bool close() override; |
|
|
|
private: |
|
PNGWriterPrivate *priv; |
|
}; |
|
|
|
#endif |
|
|
|
#endif |
|
|