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
25struct TiffWriterPrivate;
26
27class POPPLER_PRIVATE_EXPORT TiffWriter : public ImgWriter
28{
29public:
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
64private:
65 TiffWriterPrivate *priv;
66};
67
68#endif
69
70#endif
71

source code of poppler/goo/TiffWriter.h