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
qimagecapture.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
4#ifndef QCAMERAIMAGECAPTURE_H
5#define QCAMERAIMAGECAPTURE_H
6
7#include <QtCore/qobject.h>
8#include <QtMultimedia/qvideoframe.h>
9
10QT_BEGIN_NAMESPACE
11
12class QSize;
13class QMediaMetaData;
15
17
18class QImageEncoderSettings;
19class QCamera;
20class QMediaCaptureSession;
21
22class QImageCapturePrivate;
23class Q_MULTIMEDIA_EXPORT QImageCapture : public QObject
24{
25 Q_OBJECT
26 Q_PROPERTY(bool readyForCapture READ isReadyForCapture NOTIFY readyForCaptureChanged)
27 Q_PROPERTY(QMediaMetaData metaData READ metaData WRITE setMetaData NOTIFY metaDataChanged)
28 Q_PROPERTY(Error error READ error NOTIFY errorChanged)
29 Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
30 Q_PROPERTY(FileFormat fileFormat READ fileFormat NOTIFY setFileFormat NOTIFY fileFormatChanged)
31 Q_PROPERTY(Quality quality READ quality NOTIFY setQuality NOTIFY qualityChanged)
32public:
33 enum Error
34 {
35 NoError,
36 NotReadyError,
37 ResourceError,
38 OutOfSpaceError,
39 NotSupportedFeatureError,
40 FormatError
41 };
42 Q_ENUM(Error)
43
44 enum Quality
45 {
46 VeryLowQuality,
47 LowQuality,
48 NormalQuality,
49 HighQuality,
50 VeryHighQuality
51 };
52 Q_ENUM(Quality)
53
54 enum FileFormat {
55 UnspecifiedFormat,
56 JPEG,
57 PNG,
58 WebP,
59 Tiff,
60 LastFileFormat = Tiff
61 };
62 Q_ENUM(FileFormat)
63
64 explicit QImageCapture(QObject *parent = nullptr);
65 ~QImageCapture();
66
67 bool isAvailable() const;
68
69 QMediaCaptureSession *captureSession() const;
70
71 Error error() const;
72 QString errorString() const;
73
74 bool isReadyForCapture() const;
75
76 FileFormat fileFormat() const;
77 void setFileFormat(FileFormat format);
78
79 static QList<FileFormat> supportedFormats();
80 static QString fileFormatName(FileFormat c);
81 static QString fileFormatDescription(FileFormat c);
82
83 QSize resolution() const;
84 void setResolution(const QSize &);
85 void setResolution(int width, int height);
86
87 Quality quality() const;
88 void setQuality(Quality quality);
89
90 QMediaMetaData metaData() const;
91 void setMetaData(const QMediaMetaData &metaData);
92 void addMetaData(const QMediaMetaData &metaData);
93
94public Q_SLOTS:
95 int captureToFile(const QString &location = QString());
96 int capture();
97
98Q_SIGNALS:
99 void errorChanged();
100 void errorOccurred(int id, QImageCapture::Error error, const QString &errorString);
101
102 void readyForCaptureChanged(bool ready);
103 void metaDataChanged();
104
105 void fileFormatChanged();
106 void qualityChanged();
107 void resolutionChanged();
108
109 void imageExposed(int id);
110 void imageCaptured(int id, const QImage &preview);
111 void imageMetadataAvailable(int id, const QMediaMetaData &metaData);
112 void imageAvailable(int id, const QVideoFrame &frame);
113 void imageSaved(int id, const QString &fileName);
114
115private:
116 // This is here to flag an incompatibilities with Qt 5
117 QImageCapture(QCamera *) = delete;
118
119 friend class QMediaCaptureSession;
120 class QPlatformImageCapture *platformImageCapture();
121 void setCaptureSession(QMediaCaptureSession *session);
122 QImageCapturePrivate *d_ptr;
123 Q_DISABLE_COPY(QImageCapture)
124 Q_DECLARE_PRIVATE(QImageCapture)
125 Q_PRIVATE_SLOT(d_func(), void _q_error(int, int, const QString &))
126};
127
128QT_END_NAMESPACE
129
130#endif
\inmodule QtMultimedia
Combined button and popup list for selecting options.