dtkmultimedia
DTK Multimedia module
载入中...
搜索中...
未找到
dimagecapture.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DIMAGECAPTURE_H
6#define DIMAGECAPTURE_H
7
8#if BUILD_Qt6
9#include <QtMultimedia/QMediaCaptureSession>
10#include <QtMultimedia/QImageCapture>
11#include <QtMultimedia/QCamera>
12#else
13#include <QCameraImageCapture>
14#endif
15
16#include "dtkmultimedia.h"
17#include "dmediametadata.h"
18
19DMULTIMEDIA_BEGIN_NAMESPACE
20class DCamera;
21class DImageCapturePrivate;
22class DMediaCaptureSession;
23
24#if BUILD_Qt6
25class Q_MULTIMEDIA_EXPORT DImageCapture : public QImageCapture
26#else
27class Q_MULTIMEDIA_EXPORT DImageCapture : public QCameraImageCapture
28#endif
29{
30 Q_OBJECT
31 Q_DECLARE_PRIVATE(DImageCapture)
32
33public:
41 Q_ENUM(Quality)
42
49 LastFileFormat = Tiff
50 };
51 Q_ENUM(FileFormat)
52public:
53#if BUILD_Qt6
54 explicit DImageCapture(QObject *parent = nullptr);
55#else
56 explicit DImageCapture(QMediaObject *parent = nullptr);
57#endif
59
60 bool isAvailable() const;
61
63
64 Error error() const;
65 QString errorString() const;
66
67 bool isReadyForCapture() const;
68
71
72 static QList<FileFormat> supportedFormats();
73 static QString fileFormatName(FileFormat f);
75
76 QSize resolution() const;
77 void setResolution(const QSize &);
78 void setResolution(int width, int height) { setResolution(QSize(width, height)); }
79
81 void setQuality(Quality quality);
82
84 void setMetaData(const DMediaMetaData &metaData);
85 void addMetaData(const DMediaMetaData &metaData);
86
87public Q_SLOTS:
88 int captureToFile(const QString &location = QString());
89 int capture(const QString &location = QString());
90
91 #ifndef BUILD_Qt6
92Q_SIGNALS:
94 void errorOccurred(int id, DImageCapture::Error error, const QString &errorString);
95
96 void readyForCaptureChanged(bool ready);
98
102#endif
103
104protected:
105 QScopedPointer<DImageCapturePrivate> d_ptr;
106};
107DMULTIMEDIA_END_NAMESPACE
108
109#endif
DImageCapture类提供相机拍照相关功能.
Definition dimagecapture.h:29
bool isAvailable() const
拍照功能是否可用.
void setQuality(Quality quality)
设置相机捕获图像的质量.
void setResolution(int width, int height)
设置相机捕获图像的分辨率.
Definition dimagecapture.h:78
bool isReadyForCapture() const
返回相机是否准备好立即捕获图像.
void addMetaData(const DMediaMetaData &metaData)
添加相机捕获图像的元数据.
static QString fileFormatDescription(FileFormat f)
返回相机捕获图像的支持文件格式描述.
QString errorString() const
返回相机当前的错误描述.
Quality quality() const
返回相机捕获图像的质量.
void fileFormatChanged()
信号-设置相机捕获图像格式发生改变.
Quality
拍照质量
Definition dimagecapture.h:34
@ LowQuality
Definition dimagecapture.h:36
@ VeryLowQuality
Definition dimagecapture.h:35
@ NormalQuality
Definition dimagecapture.h:37
@ HighQuality
Definition dimagecapture.h:38
void readyForCaptureChanged(bool ready)
信号-相机捕获图像是否已经准备发生改变.
void qualityChanged()
信号-设置相机捕获图像质量数据发生改变.
void metaDataChanged()
信号-设置相机捕获图像元数据发生改变.
void errorChanged()
相机捕获图像的错误状态改变.
QSize resolution() const
返回相机捕获图像的分辨率.
DMediaCaptureSession * captureSession() const
返回相机的回话.
int capture(const QString &location=QString())
信号槽-相机捕获图像到目标.
void setMetaData(const DMediaMetaData &metaData)
设置相机捕获图像的元数据.
int captureToFile(const QString &location=QString())
信号槽-相机捕获图像到文件.
void setFileFormat(FileFormat format)
设置相机捕获图像的文件格式.
FileFormat fileFormat() const
返回相机捕获图像的文件格式.
static QList< FileFormat > supportedFormats()
返回相机捕获图像的支持文件格式列表.
FileFormat
拍照图片格式
Definition dimagecapture.h:43
@ Tiff
Definition dimagecapture.h:48
@ WebP
Definition dimagecapture.h:47
@ PNG
Definition dimagecapture.h:46
@ UnspecifiedFormat
Definition dimagecapture.h:44
@ JPEG
Definition dimagecapture.h:45
Error error() const
返回相机当前的错误状态.
void errorOccurred(int id, DImageCapture::Error error, const QString &errorString)
信号-相机捕获图像的错误触发.
static QString fileFormatName(FileFormat f)
返回相机捕获图像的支持文件格式名称.
DMediaMetaData metaData() const
返回相机捕获图像的元数据.
void resolutionChanged()
信号-设置相机捕获图像像素数据发生改变.
DMediaCaptureSession类提供相机连接回话相关信息.
Definition dmediacapturesession.h:29
Definition dmediametadata.h:16