1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QTIFFHANDLER_P_H
5#define QTIFFHANDLER_P_H
6
7#include <QtCore/QScopedPointer>
8#include <QtGui/QImageIOHandler>
9
10QT_BEGIN_NAMESPACE
11
12class QTiffHandlerPrivate;
13class QTiffHandler : public QImageIOHandler
14{
15public:
16 QTiffHandler();
17
18 bool canRead() const override;
19 bool read(QImage *image) override;
20 bool write(const QImage &image) override;
21
22 static bool canRead(QIODevice *device);
23
24 QVariant option(ImageOption option) const override;
25 void setOption(ImageOption option, const QVariant &value) override;
26 bool supportsOption(ImageOption option) const override;
27
28 bool jumpToNextImage() override;
29 bool jumpToImage(int imageNumber) override;
30 int imageCount() const override;
31 int currentImageNumber() const override;
32
33 enum Compression {
34 NoCompression = 0,
35 LzwCompression = 1
36 };
37private:
38 void convert32BitOrder(void *buffer, int width);
39 void rgb48fixup(QImage *image, bool floatingPoint);
40 void rgb96fixup(QImage *image);
41 void rgbFixup(QImage *image);
42 const QScopedPointer<QTiffHandlerPrivate> d;
43 bool ensureHaveDirectoryCount() const;
44};
45
46QT_END_NAMESPACE
47
48#endif // QTIFFHANDLER_P_H
49

source code of qtimageformats/src/plugins/imageformats/tiff/qtiffhandler_p.h