1 | //======================================================================== |
2 | // |
3 | // TiffWriter.h |
4 | // |
5 | // This file is licensed under the GPLv2 or later |
6 | // |
7 | // Copyright (C) 2010, 2012 William Bader <williambader@hotmail.com> |
8 | // Copyright (C) 2011, 2012, 2021, 2022 Albert Astals Cid <aacid@kde.org> |
9 | // Copyright (C) 2012, 2017 Adrian Johnson <ajohnson@redneon.com> |
10 | // Copyright (C) 2012 Pino Toscano <pino@kde.org> |
11 | // |
12 | //======================================================================== |
13 | |
14 | #ifndef TIFFWRITER_H |
15 | #define TIFFWRITER_H |
16 | |
17 | #include "poppler-config.h" |
18 | #include "poppler_private_export.h" |
19 | |
20 | #ifdef ENABLE_LIBTIFF |
21 | |
22 | # include <sys/types.h> |
23 | # include "ImgWriter.h" |
24 | |
25 | struct TiffWriterPrivate; |
26 | |
27 | class POPPLER_PRIVATE_EXPORT TiffWriter : public ImgWriter |
28 | { |
29 | public: |
30 | /* RGB - 3 bytes/pixel |
31 | * RGBA_PREMULTIPLIED - 4 bytes/pixel premultiplied by alpha |
32 | * GRAY - 1 byte/pixel |
33 | * MONOCHROME - 8 pixels/byte |
34 | * CMYK - 4 bytes/pixel |
35 | * RGB48 - 6 bytes/pixel |
36 | */ |
37 | enum Format |
38 | { |
39 | RGB, |
40 | RGBA_PREMULTIPLIED, |
41 | GRAY, |
42 | MONOCHROME, |
43 | CMYK, |
44 | RGB48 |
45 | }; |
46 | |
47 | explicit TiffWriter(Format format = RGB); |
48 | ~TiffWriter() override; |
49 | |
50 | TiffWriter(const TiffWriter &other) = delete; |
51 | TiffWriter &operator=(const TiffWriter &other) = delete; |
52 | |
53 | void setCompressionString(const char *compressionStringArg); |
54 | |
55 | bool init(FILE *openedFile, int width, int height, double hDPI, double vDPI) override; |
56 | |
57 | bool writePointers(unsigned char **rowPointers, int rowCount) override; |
58 | bool writeRow(unsigned char **rowData) override; |
59 | |
60 | bool supportCMYK() override { return true; } |
61 | |
62 | bool close() override; |
63 | |
64 | private: |
65 | TiffWriterPrivate *priv; |
66 | }; |
67 | |
68 | #endif |
69 | |
70 | #endif |
71 | |