Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qimageiohandler.h
Go to the documentation of this file.
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// Qt-Security score:significant reason:default
4
5#ifndef QIMAGEIOHANDLER_H
6#define QIMAGEIOHANDLER_H
7
8#include <QtGui/qtguiglobal.h>
9#include <QtGui/qimage.h>
10#include <QtCore/qiodevice.h>
11#include <QtCore/qplugin.h>
12#include <QtCore/qfactoryinterface.h>
13#include <QtCore/qscopedpointer.h>
14
15QT_BEGIN_NAMESPACE
16
17
18class QImage;
19class QRect;
20class QSize;
21class QVariant;
22
24class Q_GUI_EXPORT QImageIOHandler
25{
26 Q_DECLARE_PRIVATE(QImageIOHandler)
27public:
28 QImageIOHandler();
29 virtual ~QImageIOHandler();
30
31 void setDevice(QIODevice *device);
32 QIODevice *device() const;
33
34 void setFormat(const QByteArray &format);
35 void setFormat(const QByteArray &format) const;
36 QByteArray format() const;
37
38 virtual bool canRead() const = 0;
39 virtual bool read(QImage *image) = 0;
40 virtual bool write(const QImage &image);
41
63
74 Q_DECLARE_FLAGS(Transformations, Transformation)
75
76 virtual QVariant option(ImageOption option) const;
77 virtual void setOption(ImageOption option, const QVariant &value);
78 virtual bool supportsOption(ImageOption option) const;
79
80 // incremental loading
81 virtual bool jumpToNextImage();
82 virtual bool jumpToImage(int imageNumber);
83 virtual int loopCount() const;
84 virtual int imageCount() const;
85 virtual int nextImageDelay() const;
86 virtual int currentImageNumber() const;
87 virtual QRect currentImageRect() const;
88
89 static bool allocateImage(QSize size, QImage::Format format, QImage *image);
90
91protected:
92 QImageIOHandler(QImageIOHandlerPrivate &dd);
93 QScopedPointer<QImageIOHandlerPrivate> d_ptr;
94private:
95 Q_DISABLE_COPY(QImageIOHandler)
96};
97
98#ifndef QT_NO_IMAGEFORMATPLUGIN
99
100#define QImageIOHandlerFactoryInterface_iid "org.qt-project.Qt.QImageIOHandlerFactoryInterface"
101
102class Q_GUI_EXPORT QImageIOPlugin : public QObject
103{
104 Q_OBJECT
105public:
106 explicit QImageIOPlugin(QObject *parent = nullptr);
107 ~QImageIOPlugin();
108
109 enum Capability {
110 CanRead = 0x1,
111 CanWrite = 0x2,
112 CanReadIncremental = 0x4
113 };
114 Q_DECLARE_FLAGS(Capabilities, Capability)
115
116 virtual Capabilities capabilities(QIODevice *device, const QByteArray &format) const = 0;
117 virtual QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const = 0;
118};
119
120Q_DECLARE_OPERATORS_FOR_FLAGS(QImageIOPlugin::Capabilities)
121
122#endif // QT_NO_IMAGEFORMATPLUGIN
123
124QT_END_NAMESPACE
125
126#endif // QIMAGEIOHANDLER_H
QImageIOHandler * create(QIODevice *device, const QByteArray &format=QByteArray()) const override
Creates and returns a QImageIOHandler subclass, with device and format set.
Definition main.cpp:42
Capabilities capabilities(QIODevice *device, const QByteArray &format) const override
Returns the capabilities of the plugin, based on the data in device and the format format.
Definition main.cpp:35
~QGifPlugin()
Definition main.cpp:31
The QImageIOHandler class defines the common image I/O interface for all image formats in Qt.
virtual bool read(QImage *image)=0
Read an image from the device, and stores it in image.
ImageOption
This enum describes the different options supported by QImageIOHandler.
static bool allocateImage(QSize size, QImage::Format format, QImage *image)
virtual void setOption(ImageOption option, const QVariant &value)
Sets the option option with the value value.
virtual bool supportsOption(ImageOption option) const
Returns true if the QImageIOHandler supports the option option; otherwise returns false.
virtual QVariant option(ImageOption option) const
Returns the value assigned to option as a QVariant.
void setDevice(QIODevice *device)
Sets the device of the QImageIOHandler to device.
\inmodule QtGui
int imageCount() const
For image formats that support animation, this function returns the total number of images in the ani...
QIODevice * device() const
Returns the device currently assigned to QImageReader, or \nullptr if no device has been assigned.
QRect currentImageRect() const
For image formats that support animation, this function returns the rect for the current frame.
bool jumpToImage(int imageNumber)
For image formats that support animation, this function skips to the image whose sequence number is i...
QByteArray format() const
Returns the format QImageReader uses for reading images.
bool canRead() const
Returns true if an image can be read for the device (i.e., the image format is supported,...
bool jumpToNextImage()
For image formats that support animation, this function steps over the current image,...
void setFormat(const QByteArray &format)
Sets the format QImageReader will use when reading images, to format.
int currentImageNumber() const
For image formats that support animation, this function returns the sequence number of the current fr...
int nextImageDelay() const
For image formats that support animation, this function returns the number of milliseconds to wait un...
int loopCount() const
For image formats that support animation, this function returns the number of times the animation sho...
bool write(const QImage &image)
Writes the image image to the assigned device or file name.
Combined button and popup list for selecting options.