QImageCapture 类

QImageCapture 类用于录制媒体内容。 更多信息...

头文件 #include <QImageCapture>
CMakefind_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmakeQT += 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()
voidaddMetaData(const QMediaMetaData &metaData)
QMediaCaptureSession *captureSession() const
QImageCapture::Errorerror() const
QStringerrorString() const
QImageCapture::FileFormatfileFormat() const
boolisAvailable() const
boolisReadyForCapture() const
QMediaMetaDatametaData() const
QImageCapture::Qualityquality() const
QSizeresolution() const
voidsetFileFormat(QImageCapture::FileFormat format)
voidsetMetaData(const QMediaMetaData &metaData)
voidsetQuality(QImageCapture::Quality quality)
voidsetResolution(const QSize &resolution)
voidsetResolution(int width, int height)

公共槽

intcapture()
intcaptureToFile(const QString &file = QString())

信号

voiderrorChanged()
voiderrorOccurred(int id, QImageCapture::Error error, const QString &errorString)
voidfileFormatChanged()
voidimageAvailable(int id, const QVideoFrame &frame)
voidimageCaptured(int id, const QImage &preview)
voidimageExposed(int id)
voidimageMetadataAvailable(int id, const QMediaMetaData &metaData)
voidimageSaved(int id, const QString &fileName)
voidmetaDataChanged()
voidqualityChanged()
voidreadyForCaptureChanged(bool ready)
voidresolutionChanged()

静态公共成员

QStringfileFormatDescription(QImageCapture::FileFormat f)
QStringfileFormatName(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::NoError0无错误。
QImageCapture::NotReadyError1服务尚未准备好进行捕获。
QImageCapture::ResourceError2设备未准备好或不可用。
QImageCapture::OutOfSpaceError3设备上空间不足。
QImageCapture::NotSupportedFeatureError4设备不支持静态图像捕获。
QImageCapture::FormatError5当前格式不受支持。

枚举 QImageCapture::FileFormat

选择以下图像格式之一

常量描述
QImageCapture::UnspecifiedFormat0未指定格式
QImageCapture::JPEG1.jpg.jpeg 格式
QImageCapture::PNG2.png 格式
QImageCapture::WebP3.webp 格式
QImageCapture::Tiff4.tiff 格式

枚举 QImageCapture::Quality

枚举质量编码级别。

常量
QImageCapture::VeryLowQuality0
非常低质量1
低质量2
正常质量3
高质量4

属性文档

[只读] error : const Error

返回当前的错误状态。

访问函数

QImageCapture::Errorerror() const

通知信号

voiderrorChanged()

另见errorString

[只读] errorString : const QString

返回描述当前错误状态的字符串。

访问函数

QStringerrorString() const

通知信号

voiderrorChanged()

另见error

[只读] fileFormat : const FileFormat

这个属性保存了图像格式。

访问函数

QImageCapture::FileFormatfileFormat() const

通知信号

voidfileFormatChanged()

metaData : QMediaMetaData

这个属性保存了将嵌入到图像中的元数据。

注意:照相机后端可能会添加额外字段,如时间戳或位置。

访问函数

QMediaMetaDatametaData() const
voidsetMetaData(const QMediaMetaData &metaData)

通知信号

voidmetaDataChanged()

[只读] quality : const Quality

这个属性保存了图像编码质量。

访问函数

QImageCapture::Qualityquality() const

通知信号

voidqualityChanged()

[只读] readyForCapture : const bool

readyForCapturetrue 时表示摄像头准备好立即捕获图像。在 readyForCapturefalse 的情况下调用 capture() 方法是不被允许的,并且会导致错误。

访问函数

boolisReadyForCapture() const

通知信号

voidreadyForCaptureChanged(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失败,并提供错误描述errorerrorString

[静态] QString QImageCapture::fileFormatDescription(QImageCapture::FileFormat f)

返回给定文件格式f的描述。

[静态] QString QImageCapture::fileFormatName(QImageCapture::FileFormat f)

返回给定格式f的名称。

[信号] void QImageCapture::imageAvailable(int id, const QVideoFrame &frame)

当具有请求idframe可用时发出信号。

[信号] 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.的商标。所有其他商标均为各自所有者的财产。