QCamera Class
QCamera 类为系统摄像头设备提供接口。更多
Header: | #include <QCamera> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake: | QT += multimedia |
在 QML 中: | Camera |
继承: | QObject |
公共类型
enum | Error { NoError, CameraError } |
enum | ExposureMode { ExposureAuto, ExposureManual, ExposurePortrait, ExposureNight, ExposureSports, …, ExposureBarcode } |
enum class | Feature { ColorTemperature, ExposureCompensation, IsoSensitivity, ManualExposureTime, CustomFocusPoint, FocusDistance } |
flags | Features |
enum | FlashMode { FlashOff, FlashOn, FlashAuto } |
enum | FocusMode { FocusModeAuto, FocusModeAutoNear, FocusModeAutoFar, FocusModeHyperfocal, FocusModeInfinity, FocusModeManual } |
enum | TorchMode { TorchOff, TorchOn, TorchAuto } |
enum | WhiteBalanceMode { WhiteBalanceAuto, WhiteBalanceManual, WhiteBalanceSunlight, WhiteBalanceCloudy, WhiteBalanceShade, …, WhiteBalanceSunset } |
属性
|
|
公共功能
QCamera(QObject *parent = nullptr) | |
QCamera(QCameraDevice::Position position, QObject *parent = nullptr) | |
QCamera(const QCameraDevice &cameraDevice, QObject *parent = nullptr) | |
virtual | ~QCamera() override |
QCameraDevice | cameraDevice() const |
QCameraFormat | cameraFormat() const |
QMediaCaptureSession * | captureSession() const |
int | colorTemperature() const |
QPointF | customFocusPoint() const |
QCamera::Error | error() const |
QString | errorString() const |
float | exposureCompensation() const |
QCamera::ExposureMode | exposureMode() const |
float | exposureTime() const |
QCamera::FlashMode | flashMode() const |
float | focusDistance() const |
QCamera::FocusMode | focusMode() const |
QPointF | focusPoint() const |
bool | isActive() const |
bool | isAvailable() const |
bool | isExposureModeSupported(QCamera::ExposureMode mode) const |
bool | isFlashModeSupported(QCamera::FlashMode mode) const |
bool | isFlashReady() const |
bool | isFocusModeSupported(QCamera::FocusMode mode) const |
bool | isTorchModeSupported(QCamera::TorchMode mode) const |
bool | isWhiteBalanceModeSupported(QCamera::WhiteBalanceMode mode) const |
int | isoSensitivity() const |
float | manualExposureTime() const |
int | manualIsoSensitivity() const |
float | maximumExposureTime() const |
int | maximumIsoSensitivity() const |
float | maximumZoomFactor() const |
float | minimumExposureTime() const |
int | minimumIsoSensitivity() const |
float | minimumZoomFactor() const |
void | setCameraDevice(const QCameraDevice &cameraDevice) |
void | setCameraFormat(const QCameraFormat &format) |
void | setCustomFocusPoint(const QPointF &point) |
void | setFocusDistance(float d) |
void | setFocusMode(QCamera::FocusMode mode) |
void | setZoomFactor(float factor) |
QCamera::Features | supportedFeatures() const |
QCamera::TorchMode | torchMode() const |
QCamera::WhiteBalanceMode | whiteBalanceMode() const |
float | zoomFactor() const |
公共插槽
void | setActive(bool active) |
void | setAutoExposureTime() |
void | setAutoIsoSensitivity() |
void | setColorTemperature(int colorTemperature) |
void | setExposureCompensation(float ev) |
void | setExposureMode(QCamera::ExposureMode mode) |
void | setFlashMode(QCamera::FlashMode mode) |
void | setManualExposureTime(float seconds) |
void | setManualIsoSensitivity(int iso) |
void | setTorchMode(QCamera::TorchMode mode) |
void | setWhiteBalanceMode(QCamera::WhiteBalanceMode mode) |
void | start() |
void | stop() |
void | zoomTo(float factor, float rate) |
信号
void | activeChanged(bool) |
void | cameraDeviceChanged() |
void | cameraFormatChanged() |
void | colorTemperatureChanged() const |
void | customFocusPointChanged() |
void | errorChanged() |
void | errorOccurred(QCamera::Error error, const QString &errorString) |
void | exposureCompensationChanged(float value) |
void | exposureModeChanged() |
void | exposureTimeChanged(float speed) |
void | flashModeChanged() |
void | flashReady(bool ready) |
void | focusDistanceChanged(float) |
void | focusModeChanged() |
void | focusPointChanged() |
void | isoSensitivityChanged(int value) |
void | manualExposureTimeChanged(float speed) |
void | manualIsoSensitivityChanged(int) |
void | maximumZoomFactorChanged(float) |
void | minimumZoomFactorChanged(float) |
void | supportedFeaturesChanged() |
void | torchModeChanged() |
void | whiteBalanceModeChanged() const |
void | zoomFactorChanged(float) |
详细说明
QCamera 可在QMediaCaptureSession 中用于视频录制和图像拍摄。
您可以使用QCameraDevice 列出可用的摄像头,并选择要使用的摄像头。
const QList<QCameraDevice> cameras = QMediaDevices::videoInputs(); for (const QCameraDevice &cameraDevice : cameras) { if (cameraDevice.description() == "mycamera") camera = new QCamera(cameraDevice); }
在支持该功能的硬件上,QCamera 可让您调整焦距和变焦。它还包括一些功能,如用于近距离工作的 "微距 "模式(如读取条形码或识别字母),或 "触摸对焦"--指示图像中有趣的区域,让硬件尝试对焦。
camera->setFocusPointMode(QCamera::FocusModeManual); camera->setCustomFocusPoint(QPointF(0.25f, 0.75f)); // A point near the bottom left, 25% away from the corner, near that shiny vase
minimumZoomFactor() 和maximumZoomFactor() 方法提供了支持的变焦系数范围。zoomTo() 方法允许更改变焦系数。
camera->setZoomFactor(3.0);
在获取相机帧的原始数据后,相机硬件和软件会执行各种图像处理任务,以生成最终图像。这包括补偿环境光色、减少噪点以及对图像进行一些其他调整。
您可以通过 "相机属性 "控制其中的许多处理步骤。例如,您可以设置用于处理图像的白平衡(或色温):
camera->setWhiteBalanceMode(QCamera::WhiteBalanceFluorescent);
有关摄像机图像处理的更多信息,请参阅摄像机图像处理。
有关更多信息,请参阅摄像机概述。
成员类型文档
enum QCamera::Error
该枚举用于保存最后一个错误代码。
常量 | 值 | 说明 |
---|---|---|
QCamera::NoError | 0 | 未发生错误。 |
QCamera::CameraError | 1 | 发生错误。 |
enum QCamera::ExposureMode
常数 | 值 | 说明 |
---|---|---|
QCamera::ExposureAuto | 0 | 自动模式。 |
QCamera::ExposureManual | 1 | 手动模式 |
QCamera::ExposurePortrait | 2 | 肖像曝光模式。 |
QCamera::ExposureNight | 3 | 夜间模式。 |
QCamera::ExposureSports | 4 | 斑点曝光模式。 |
QCamera::ExposureSnow | 5 | 雪景曝光模式。 |
QCamera::ExposureBeach | 6 | 海滩曝光模式。 |
QCamera::ExposureAction | 7 | 动作模式自 5.5 起 |
QCamera::ExposureLandscape | 8 | 风景模式自 5.5 版起 |
QCamera::ExposureNightPortrait | 9 | 夜间肖像模式自 5.5 版起 |
QCamera::ExposureTheatre | 10 | 剧院模式自 5.5 版起 |
QCamera::ExposureSunset | 11 | 日落模式自 5.5 版起 |
QCamera::ExposureSteadyPhoto | 12 | 稳定照片模式自 5.5 版起 |
QCamera::ExposureFireworks | 13 | 烟花模式自 5.5 版起 |
QCamera::ExposureParty | 14 | 派对模式自 5.5 版起 |
QCamera::ExposureCandlelight | 15 | 烛光模式自 5.5 版起 |
QCamera::ExposureBarcode | 16 | 条形码模式自 5.5 版起 |
枚举类 QCamera::Feature
flags QCamera::Features
描述相机支持的一组特征。返回值可以是以下值的组合:
常量 | 值 | 描述 |
---|---|---|
QCamera::Feature::ColorTemperature | 0x1 | 摄像机支持设置自定义colorTemperature 。 |
QCamera::Feature::ExposureCompensation | 0x2 | 摄像机支持设置自定义exposureCompensation 。 |
QCamera::Feature::IsoSensitivity | 0x4 | 摄像机支持设置自定义isoSensitivity 。 |
QCamera::Feature::ManualExposureTime | 0x8 | 摄像机支持设置manual exposure Time 。 |
QCamera::Feature::CustomFocusPoint | 0x10 | 摄像机支持设置custom focus point 。 |
QCamera::Feature::FocusDistance | 0x20 | 摄像机支持设置focusDistance 属性。 |
特征类型是QFlags<Feature> 的类型定义。它存储特征值的 OR 组合。
enum QCamera::FlashMode
常数 | 值 | 说明 |
---|---|---|
QCamera::FlashOff | 0 | 闪光灯关闭。 |
QCamera::FlashOn | 1 | 闪光灯打开。 |
QCamera::FlashAuto | 2 | 自动闪光。 |
enum QCamera::FocusMode
常数 | 值 | 说明 |
---|---|---|
QCamera::FocusModeAuto | 0 | 连续自动对焦模式。 |
QCamera::FocusModeAutoNear | 1 | 近处物体的连续自动对焦模式。 |
QCamera::FocusModeAutoFar | 2 | 远处物体连续自动对焦模式。 |
QCamera::FocusModeHyperfocal | 3 | 对焦至超焦距,实现最大景深。从超焦距的一半到无限远处的所有物体都会清晰可接受。 |
QCamera::FocusModeInfinity | 4 | 严格对焦至无限远。 |
QCamera::FocusModeManual | 5 | 根据focusDistance 锁定相机镜头对焦距离。 |
enum QCamera::TorchMode
常数 | 值 | 说明 |
---|---|---|
QCamera::TorchOff | 0 | 手电筒关闭。 |
QCamera::TorchOn | 1 | 手电筒打开。 |
QCamera::TorchAuto | 2 | 自动喷灯。 |
enum QCamera::WhiteBalanceMode
常数 | 值 | 说明 |
---|---|---|
QCamera::WhiteBalanceAuto | 0 | 自动白平衡模式。 |
QCamera::WhiteBalanceManual | 1 | 手动白平衡。在此模式下,应使用setColorTemperature() 设置白平衡。 |
QCamera::WhiteBalanceSunlight | 2 | 阳光白平衡模式。 |
QCamera::WhiteBalanceCloudy | 3 | 阴天白平衡模式。 |
QCamera::WhiteBalanceShade | 4 | 阴天白平衡模式。 |
QCamera::WhiteBalanceTungsten | 5 | 钨丝灯(白炽灯)白平衡模式。 |
QCamera::WhiteBalanceFluorescent | 6 | 荧光灯白平衡模式。 |
QCamera::WhiteBalanceFlash | 7 | 闪光灯白平衡模式。 |
QCamera::WhiteBalanceSunset | 8 | 日落白平衡模式。 |
属性文档
active : bool
说明摄像机当前是否处于活动状态。
访问功能:
通知信号:
void | activeChanged(bool) |
cameraDevice : QCameraDevice
返回与此摄像机关联的QCameraDevice 对象。
访问功能:
QCameraDevice | cameraDevice() const |
void | setCameraDevice(const QCameraDevice &cameraDevice) |
通知信号:
void | cameraDeviceChanged() |
cameraFormat : QCameraFormat
返回摄像机当前使用的摄像机格式。
注: 在安卓目标设备上使用 FFMPEG 后端时,如果请求YUV420P格式,将收到全平面 4:2:0 YUV420P 或半平面 NV12/NV21。这取决于设备 OEM 实施的编解码器。
访问功能:
QCameraFormat | cameraFormat() const |
void | setCameraFormat(const QCameraFormat &format) |
提示信号:
void | cameraFormatChanged() |
另请参阅 QCameraDevice::videoFormats 。
colorTemperature : int
如果当前白平衡模式为WhiteBalanceManual
,则返回当前色温。对于其他模式,返回值未定义。
访问功能:
int | colorTemperature() const |
void | setColorTemperature(int colorTemperature) |
通知信号:
void | colorTemperatureChanged() const |
customFocusPoint : QPointF
该属性表示自定义焦点的位置,以相对帧坐标表示:QPointF(0,0) 指向帧左上方,QPointF(0.5,0.5) 指向帧中心。
自定义焦点属性仅在FocusPointCustom
聚焦模式下使用。
您可以通过使用 Feature.CustomFocusPoint 标志查询supportedFeatures() 来检查是否支持自定义焦点。
访问功能:
QPointF | customFocusPoint() const |
void | setCustomFocusPoint(const QPointF &point) |
通知信号:
void | customFocusPointChanged() |
[read-only]
error : const Error
返回摄像机的错误状态。
访问功能:
QCamera::Error | error() const |
通知信号:
void | errorChanged() |
[read-only]
errorString : const QString
返回描述摄像机错误状态的可读字符串。
访问功能:
QString | errorString() const |
通知信号:
void | errorChanged() |
exposureCompensation : float
以 EV 为单位的曝光补偿。
曝光补偿属性允许调整自动计算的曝光量。
访问功能:
float | exposureCompensation() const |
void | setExposureCompensation(float ev) |
通知信号:
void | exposureCompensationChanged(float value) |
exposureMode : QCamera::ExposureMode
该属性用于保存正在使用的曝光模式。
访问功能:
QCamera::ExposureMode | exposureMode() const |
void | setExposureMode(QCamera::ExposureMode mode) |
通知信号:
void | exposureModeChanged() |
另请参阅 QCamera::isExposureModeSupported 。
[read-only]
exposureTime : const float
相机曝光时间(秒)。
访问功能:
float | exposureTime() const |
通知信号:
void | exposureTimeChanged(float speed) |
另请参阅 minimumExposureTime(),maximumExposureTime() 和setManualExposureTime()。
flashMode : QCamera::FlashMode
该属性用于保存正在使用的闪光灯模式。
如果相机有闪光灯,则启用某种闪光灯模式。
访问功能:
QCamera::FlashMode | flashMode() const |
void | setFlashMode(QCamera::FlashMode mode) |
通知信号:
void | flashModeChanged() |
另请参阅 QCamera::FlashMode,QCamera::isFlashModeSupported, 和QCamera::isFlashReady 。
[read-only]
flashReady : const bool
指示闪光灯是否已充电并可使用。
访问功能:
bool | isFlashReady() const | [see note below] |
注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE 。
通知信号:
void | flashReady(bool ready) |
focusDistance : float
此属性定义摄像机设备在手动对焦模式下工作时的镜头对焦距离。有效值范围为 0 至 1,其中 0 表示最近的对焦距离,1 表示最远的对焦距离。最远距离通常为无限远,但并非所有设备都是如此。
只有当focusMode 设置为FocusModeManual ,且supportedFeatures 包含Feature::FocusDistance 标志时,设备才会应用此属性。
如果在focusMode 未设置为QCamera::FocusModeManual
时为该属性赋值,则该属性会存储该值,但不会影响设备,直到QCamera::FocusModeManual
被激活。
在有效范围 [0, 1] 之外赋值对该属性没有影响。
如果supportedFeatures 不包含FocusDistance 标志,则任何设置该属性的尝试都将被忽略。
在自动对焦模式下,摄像机不会更新此属性。
默认值为 1。
访问功能:
float | focusDistance() const |
void | setFocusDistance(float d) |
通知信号:
void | focusDistanceChanged(float) |
focusMode : FocusMode
该属性显示当前摄像机的对焦模式。
该属性包含控制摄像机设备对焦模式的值。在所有自动对焦模式下,摄像设备都会持续对焦。
要检查摄像机设备是否支持特定对焦模式,请将相应的FocusMode 值作为参数传递给isFocusModeSupported 函数。如果不支持对焦模式值,函数将返回 false。为该属性指定不支持的模式没有任何作用。
如果将 focusMode 属性设置为QCamera::FocusModeManual ,镜头会根据focusDistance 锁定焦点。
访问功能:
QCamera::FocusMode | focusMode() const |
void | setFocusMode(QCamera::FocusMode mode) |
Notifier 信号:
void | focusModeChanged() |
另请参阅 isFocusModeSupported().
[read-only]
focusPoint : const QPointF
返回自动对焦系统当前使用的对焦点。
访问功能:
QPointF | focusPoint() const |
通知信号:
void | focusPointChanged() |
[read-only]
isoSensitivity : const int
该属性用于保存传感器的 ISO 感光度。
描述相机当前使用的 ISO 感光度。
访问功能:
int | isoSensitivity() const |
通知信号:
void | isoSensitivityChanged(int value) |
另请参阅 setAutoIsoSensitivity() 和setManualIsoSensitivity()。
manualExposureTime : float
将手动曝光时间设置为seconds
访问功能:
float | manualExposureTime() const |
void | setManualExposureTime(float seconds) |
提示信号:
void | manualExposureTimeChanged(float speed) |
manualIsoSensitivity : int
描述手动设置的 ISO 感光度
将此属性设置为-1(默认值)意味着相机自动调整 ISO 感光度。
访问功能:
int | manualIsoSensitivity() const |
void | setManualIsoSensitivity(int iso) |
通知信号:
void | manualIsoSensitivityChanged(int) |
[read-only]
maximumZoomFactor : const float
返回最大变焦系数。
在不支持变焦的摄像机上,该值将为1.0
。
访问功能:
float | maximumZoomFactor() const |
通知信号:
void | maximumZoomFactorChanged(float) |
[read-only]
minimumZoomFactor : const float
返回最小变焦系数。
在不支持变焦的摄像机上,该值将为1.0
。
访问功能:
float | minimumZoomFactor() const |
通知信号:
void | minimumZoomFactorChanged(float) |
[read-only]
supportedFeatures : const Features
返回此摄像机支持的功能。
访问功能:
QCamera::Features | supportedFeatures() const |
通知信号:
void | supportedFeaturesChanged() |
另请参阅 QCamera::Feature 。
torchMode : QCamera::TorchMode
该属性用于保存正在使用的手电筒模式。
手电筒是一种持续光源。它可以在光线不足的情况下进行视频录制。启用手电筒模式通常会覆盖当前设置的任何闪光灯模式。
访问功能:
QCamera::TorchMode | torchMode() const |
void | setTorchMode(QCamera::TorchMode mode) |
通知信号:
void | torchModeChanged() |
另请参阅 QCamera::TorchMode 、QCamera::isTorchModeSupported 和QCamera::flashMode 。
whiteBalanceMode : WhiteBalanceMode
返回正在使用的白平衡模式。
访问功能:
QCamera::WhiteBalanceMode | whiteBalanceMode() const |
void | setWhiteBalanceMode(QCamera::WhiteBalanceMode mode) |
通知信号
void | whiteBalanceModeChanged() const |
zoomFactor : float
该属性用于保存当前缩放因子。
获取或设置当前缩放系数。数值将在minimumZoomFactor 和maximumZoomFactor 之间箝位。
访问功能:
float | zoomFactor() const |
void | setZoomFactor(float factor) |
Notifier 信号:
void | zoomFactorChanged(float) |
成员函数 文档
[explicit]
QCamera::QCamera(QObject *parent = nullptr)
使用parent 构建 QCamera。
如果有多个摄像机可用,则选择系统中的默认摄像机。
[explicit]
QCamera::QCamera(QCameraDevice::Position position, QObject *parent = nullptr)
构建一个 QCamera,使用位于指定position 的硬件摄像头。
例如,在手机上,它可用于在前置摄像头和后置摄像头之间轻松选择。
如果指定的position 上没有摄像头,或position 为QCameraDevice::UnspecifiedPosition ,则使用默认摄像头。
[explicit]
QCamera::QCamera(const QCameraDevice &cameraDevice, QObject *parent = nullptr)
根据摄像机描述cameraDevice 和parent 构建 QCamera。
[override virtual noexcept]
QCamera::~QCamera()
销毁摄像机对象。
QMediaCaptureSession *QCamera::captureSession() const
返回此摄像机连接的捕捉会话,如果摄像机未连接捕捉会话,则返回 nullptr。
使用QMediaCaptureSession::setCamera() 将摄像机连接到会话。
[signal]
void QCamera::errorOccurred(QCamera::Error error, const QString &errorString)
当错误状态变为error 时会发出该信号。错误描述以errorString 的形式提供。
[signal]
void QCamera::exposureCompensationChanged(float value)
当曝光补偿更改为value 时发出的信号。
注: 物业exposureCompensation 的通知信号。
float QCamera::exposureTime() const
返回当前曝光时间(以秒为单位)。
注: 属性 exposureTime 的获取函数。
[signal]
void QCamera::exposureTimeChanged(float speed)
摄像机曝光speed 发生变化的信号。
注: 物业exposureTime 的通知信号。
[signal]
void QCamera::flashReady(bool ready)
闪存ready 状态发生变化的信号。
注: 属性 flashReady 的通知信号。
[signal]
void QCamera::focusModeChanged()
当focusMode 发生变化时发出信号。
注: 属性focusMode 的通知信号。
bool QCamera::isActive() const
如果摄像机当前处于活动状态,则返回 true。
注: 属性active 的获取函数。
bool QCamera::isAvailable() const
如果可以使用相机,则返回 true。
[invokable]
bool QCamera::isExposureModeSupported(QCamera::ExposureMode mode) const
如果支持曝光mode ,则返回 true。
注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE 。
[invokable]
bool QCamera::isFlashModeSupported(QCamera::FlashMode mode) const
如果支持 flashmode ,则返回 true。
注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE 。
[invokable]
bool QCamera::isFlashReady() const
如果闪存已充电,则返回 true。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
注: 属性flashReady 的获取函数。
[invokable]
bool QCamera::isFocusModeSupported(QCamera::FocusMode mode) const
如果摄像机支持对焦mode ,则返回true
。
如果报告FocusModeManual 受支持,则暗示Feature::FocusDistance 也受支持。
注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE 。
[invokable]
bool QCamera::isTorchModeSupported(QCamera::TorchMode mode) const
如果支持火炬mode ,则返回 true。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[invokable]
bool QCamera::isWhiteBalanceModeSupported(QCamera::WhiteBalanceMode mode) const
如果支持白平衡mode ,则返回 true。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[signal]
void QCamera::isoSensitivityChanged(int value)
当灵敏度变为value 时发出的信号。
注: 属性isoSensitivity 的通知信号。
float QCamera::manualExposureTime() const
以秒为单位返回手动曝光时间,如果摄像机使用自动曝光时间,则返回-1。
注: 属性 manualExposureTime 的获取函数。
另请参阅 setManualExposureTime().
float QCamera::maximumExposureTime() const
最大曝光时间(秒)。
int QCamera::maximumIsoSensitivity() const
返回相机支持的最大 ISO 感光度。
float QCamera::minimumExposureTime() const
最小曝光时间(秒)。
int QCamera::minimumIsoSensitivity() const
返回相机支持的最小 ISO 感光度。
[slot]
void QCamera::setActive(bool active)
如果active 是true
,则打开摄像机;如果是false
,则关闭摄像机。
注: 属性active 的设置函数。
另请参阅 isActive() 。
[slot]
void QCamera::setAutoExposureTime()
使用自动计算的曝光时间
[slot]
void QCamera::setAutoIsoSensitivity()
打开自动灵敏度
void QCamera::setCameraDevice(const QCameraDevice &cameraDevice)
将摄像机对象连接到cameraDevice 所描述的物理摄像机设备。使用默认构建的QCameraDevice 对象作为cameraDevice 将把摄像机连接到系统默认的摄像机设备。
切换摄像机设备时,QCamera 的功能将被更新。此外,QCamera 的控制属性(如focusMode,flashMode,focusDistance,zoomFactor )也会更新如下:
- 如果新设备支持某个属性,则该属性值将应用到摄像机设备。
- 如果属性受支持,但其有效值范围已更改,则该属性将被箝位到新的范围并应用到摄像机设备。
- 如果新的摄像机设备不支持某个属性,则该属性值将重置为默认值,并且不会对摄像机设备做任何更改。
注: 用于属性cameraDevice 的设置函数。
另请参阅 cameraDevice() 。
void QCamera::setCameraFormat(const QCameraFormat &format)
告诉摄像机使用format 所描述的格式。这可用于定义用于记录和捕捉图像的特定分辨率和帧频。
注: 在安卓目标设备上使用 FFMPEG 后端时,如果请求YUV420P格式,将收到全平面 4:2:0 YUV420P 或半平面 NV12/NV21。这取决于设备 OEM 实施的编解码器。
注: 属性cameraFormat 的设置函数。
另请参阅 cameraFormat() 。
[slot]
void QCamera::setColorTemperature(int colorTemperature)
将手动白平衡设置为colorTemperature 。当whiteBalanceMode() 设置为WhiteBalanceManual
时使用。单位为开尔文。
只有在支持WhiteBalanceManual 的情况下,设置色温才会有效果。在这种情况下,设置大于 0 的色温会自动将白平衡模式设置为WhiteBalanceManual 。将色温设置为 0 会将白平衡模式重置为WhiteBalanceAuto 。
注: 属性colorTemperature 的设置器功能。
另请参阅 colorTemperature() 。
[slot]
void QCamera::setWhiteBalanceMode(QCamera::WhiteBalanceMode mode)
将白平衡设置为mode 。
注: 属性whiteBalanceMode 的设置函数。
另请参阅 whiteBalanceMode() 。
void QCamera::setZoomFactor(float factor)
以每秒 1 倍的速度缩放至变焦系数factor 。
注: 属性zoomFactor 的设置函数。
另请参阅 zoomFactor().
[slot]
void QCamera::start()
启动摄像机。
与setActive(true) 相同。
如果由于某种原因无法启动摄像机,则会发出errorOccurred() 信号。
[slot]
void QCamera::stop()
停止摄像。与setActive(false) 相同。
[slot]
void QCamera::zoomTo(float factor, float rate)
使用rate 变焦到变焦系数factor 。
rate 以每秒 2 的幂来表示。如果速率为 1,则从变焦系数 1 变焦到 4 需要 2 秒。
注: 并非所有摄像机都支持使用特定速率。如果不支持,将尽可能快地进行缩放。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.