QImageCapture 类
QImageCapture 类用于录制媒体内容。 更多信息...
头文件 | #include <QImageCapture> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake | QT += multimedia |
继承 | QObject |
公共类型
枚举 | Error { NoError, NotReadyError, ResourceError, OutOfSpaceError, NotSupportedFeatureError, FormatError } |
枚举 | FileFormat { UnspecifiedFormat, JPEG, PNG, WebP, Tiff } |
枚举 | Quality { VeryLowQuality, LowQuality, NormalQuality, HighQuality, VeryHighQuality } |
属性
|
|
公共函数
QImageCapture(QObject *parent = nullptr) | |
virtual | ~QImageCapture() |
void | addMetaData(const QMediaMetaData &metaData) |
QMediaCaptureSession * | captureSession() const |
QImageCapture::Error | error() const |
QString | errorString() const |
QImageCapture::FileFormat | fileFormat() const |
bool | isAvailable() const |
bool | isReadyForCapture() const |
QMediaMetaData | metaData() const |
QImageCapture::Quality | quality() const |
QSize | resolution() const |
void | setFileFormat(QImageCapture::FileFormat format) |
void | setMetaData(const QMediaMetaData &metaData) |
void | setQuality(QImageCapture::Quality quality) |
void | setResolution(const QSize &resolution) |
void | setResolution(int width, int height) |
公共槽
int | capture() |
int | captureToFile(const QString &file = QString()) |
信号
void | errorChanged() |
void | errorOccurred(int id, QImageCapture::Error error, const QString &errorString) |
void | fileFormatChanged() |
void | imageAvailable(int id, const QVideoFrame &frame) |
void | imageCaptured(int id, const QImage &preview) |
void | imageExposed(int id) |
void | imageMetadataAvailable(int id, const QMediaMetaData &metaData) |
void | imageSaved(int id, const QString &fileName) |
void | metaDataChanged() |
void | qualityChanged() |
void | readyForCaptureChanged(bool ready) |
void | resolutionChanged() |
静态公共成员
QString | fileFormatDescription(QImageCapture::FileFormat f) |
QString | fileFormatName(QImageCapture::FileFormat f) |
QList<QImageCapture::FileFormat> | supportedFormats() |
详细描述
The QImageCapture 类是一个高级图像记录类。它并不打算单独使用,而是用于访问其他媒体对象(如 QCamera)的媒体录制功能。
QMediaCaptureSession captureSession; camera = new QCamera; captureSession.setCamera(camera); viewfinder = new QVideoWidget(); viewfinder->show(); captureSession.setVideoOutput(viewfinder); imageCapture = new QImageCapture(camera); captureSession.setImageCapture(imageCapture); camera->start(); //on shutter button pressed imageCapture->capture();
另见QCamera。
成员类型文档
枚举 QImageCapture::Error
常量 | 值 | 描述 |
---|---|---|
QImageCapture::NoError | 0 | 无错误。 |
QImageCapture::NotReadyError | 1 | 服务尚未准备好进行捕获。 |
QImageCapture::ResourceError | 2 | 设备未准备好或不可用。 |
QImageCapture::OutOfSpaceError | 3 | 设备上空间不足。 |
QImageCapture::NotSupportedFeatureError | 4 | 设备不支持静态图像捕获。 |
QImageCapture::FormatError | 5 | 当前格式不受支持。 |
枚举 QImageCapture::FileFormat
选择以下图像格式之一
常量 | 值 | 描述 |
---|---|---|
QImageCapture::UnspecifiedFormat | 0 | 未指定格式 |
QImageCapture::JPEG | 1 | .jpg 或 .jpeg 格式 |
QImageCapture::PNG | 2 | .png 格式 |
QImageCapture::WebP | 3 | .webp 格式 |
QImageCapture::Tiff | 4 | .tiff 格式 |
枚举 QImageCapture::Quality
枚举质量编码级别。
常量 | 值 |
---|---|
QImageCapture::VeryLowQuality | 0 |
非常低质量 | 1 |
低质量 | 2 |
正常质量 | 3 |
高质量 | 4 |
属性文档
[只读]
error : const Error
返回当前的错误状态。
访问函数
QImageCapture::Error | error() const |
通知信号
void | errorChanged() |
另见errorString。
[只读]
errorString : const QString
返回描述当前错误状态的字符串。
访问函数
QString | errorString() const |
通知信号
void | errorChanged() |
另见error。
[只读]
fileFormat : const FileFormat
这个属性保存了图像格式。
访问函数
QImageCapture::FileFormat | fileFormat() const |
通知信号
void | fileFormatChanged() |
metaData : QMediaMetaData
这个属性保存了将嵌入到图像中的元数据。
注意:照相机后端可能会添加额外字段,如时间戳或位置。
访问函数
QMediaMetaData | metaData() const |
void | setMetaData(const QMediaMetaData &metaData) |
通知信号
void | metaDataChanged() |
[只读]
quality : const Quality
这个属性保存了图像编码质量。
访问函数
QImageCapture::Quality | quality() const |
通知信号
void | qualityChanged() |
[只读]
readyForCapture : const bool
当 readyForCapture
为 true
时表示摄像头准备好立即捕获图像。在 readyForCapture
为 false
的情况下调用 capture() 方法是不被允许的,并且会导致错误。
访问函数
bool | isReadyForCapture() const |
通知信号
void | readyForCaptureChanged(bool ready) |
成员函数文档
[显式]
QImageCapture::QImageCapture(QObject *parent = nullptr)
使用 parent 构造一个可以捕获摄像头产生的单个静态图像的图像捕获对象。
您必须将图像捕获对象和 QCamera 连接到捕获会话以捕获图像。
[虚拟 noexcept]
QImageCapture::~QImageCapture()
销毁图像捕获对象。
void QImageCapture::addMetaData(const QMediaMetaData &metaData)
向现有元数据添加额外的 metaData,这些数据将嵌入到捕获的图像中。
[槽函数]
int QImageCapture::capture()
捕获图像,并将其作为 QImage 可用。在大多数情况下,此操作是异步的,随后会发出信号 QImageCapture::imageExposed()、QImageCapture::imageCaptured() 或 QImageCapture::error。
QImageCapture::capture 返回捕获 Id 参数,用于与 imageExposed()、imageCaptured() 和 imageSaved() 信号一起使用。
另请参阅isReadyForCapture()。
QMediaCaptureSession *QImageCapture::captureSession() const
返回此摄像头连接到的捕获会话,如果摄像头未连接到捕获会话,则返回 nullptr。
使用 QMediaCaptureSession::setImageCapture() 将图像捕获连接到会话。
[槽函数]
int QImageCapture::captureToFile(const QString &file = QString())
捕获图像并保存到文件中。在该操作中,大多数情况下是异步的,之后是信号QImageCapture::imageExposed(),QImageCapture::imageCaptured(),QImageCapture::imageSaved()或QImageCapture::error()。
如果传递了一个空的文件,相机后端将选择系统照片的默认位置和命名方案,如果只指定文件名而没有完整路径,则图像将被保存在默认目录中,使用imageCaptured()和imageSaved()信号报告完整路径。
QCamera会保存所有捕获参数,如曝光设置或图像处理参数,因此在调用capture()之后更改相机参数不会影响之前的捕获请求。
QImageCapture::capture返回捕获ID参数,用于与imageExposed(),imageCaptured()和imageSaved()信号一起使用。
另请参阅isReadyForCapture()。
[信号]
void QImageCapture::errorOccurred(int id, QImageCapture::Error error, const QString &errorString)
信号表示捕获请求id失败,并提供错误描述error和errorString。
[静态]
QString QImageCapture::fileFormatDescription(QImageCapture::FileFormat f)
返回给定文件格式f的描述。
[静态]
QString QImageCapture::fileFormatName(QImageCapture::FileFormat f)
返回给定格式f的名称。
[信号]
void QImageCapture::imageAvailable(int id, const QVideoFrame &frame)
当具有请求id的frame可用时发出信号。
[信号]
void QImageCapture::imageCaptured(int id, const QImage &preview)
当具有请求id的帧被捕获时发出信号,但尚未处理和保存。帧review可以显示给用户。
[信号]
void QImageCapture::imageExposed(int id)
当具有请求id的帧被曝光时发出信号。
[信号]
void QImageCapture::imageMetadataAvailable(int id, const QMediaMetaData &metaData)
当通过id识别的图像具有metaData时发出信号。
[信号]
void QImageCapture::imageSaved(int id, const QString &fileName)
当设置了QImageCapture::CaptureToFile并保存具有请求id的帧到fileName时,会发出该信号。
bool QImageCapture::isAvailable() const
如果图像捕获服务已准备好使用,则返回true。
[信号]
void QImageCapture::readyForCaptureChanged(bool ready)
通知相机正在捕获的状态已更改。
注意:属性readyForCapture的发送器信号。
QSize QImageCapture::resolution() const
返回编码图像的分辨率。
另请参阅setResolution。
[信号]
void QImageCapture::resolutionChanged()
当图像分辨率更改时发出信号。
void QImageCapture::setFileFormat(QImageCapture::FileFormat format)
设置图像格式。
另请参阅fileFormat。
void QImageCapture::setMetaData(const QMediaMetaData &metaData)
用一组metaData替换任何现有的元数据,以嵌入到捕获的图像中。
注意:属性metaData的设置器函数。
另请参阅metaData。
void QImageCapture::setQuality(QImageCapture::Quality quality)
设置图像编码质量。
另请参阅quality。
void QImageCapture::setResolution(const QSize &resolution)
设置编码图像的分辨率。
一个空的QSize表示编码器应根据图像源和编解码器的限制做出最佳选择。
另请参阅resolution。
void QImageCapture::setResolution(int width, int height)
设置编码图像分辨率的宽度width和高度height。
这是一个重载函数。
[静态]
QList<QImageCapture::FileFormat> QImageCapture::supportedFormats()
返回支持的文件格式列表。
另请参阅FileFormat。
© 2024 The Qt Company Ltd. 本文档中包含的贡献属于各自的所有者。本提供的文档受版权保护,并根据自由软件基金会发布的GNU自由文档许可协议版本1.3提供。Qt及其相应标志是芬兰及世界各地The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。