Класс QCameraFocusZone
Класс QCameraFocusZone предоставляет информацию о зонах, используемых для автоматической фокусировки камеры. Подробнее...
| Заголовок: | #include <QCameraFocusZone> |
| qmake: | QT += multimedia |
Типы публичного доступа
| Перечисление | FocusZoneStatus { Недействительный, Неиспользуемый, Выбранный, Сфокусированный } |
Функции публичного доступа
| QCameraFocusZone(const QCameraFocusZone &other) | |
| QCameraFocusZone & | operator=(const QCameraFocusZone &other) |
| ~QCameraFocusZone() | |
| QRectF | area() const |
| bool | isValid() const |
| QCameraFocusZone::FocusZoneStatus | status() const |
| bool | operator!=(const QCameraFocusZone &other) const |
| bool | operator==(const QCameraFocusZone &other) const |
Подробное описание
Для камер, поддерживающих автоматическую фокусировку, для того чтобы камера сфокусировалась на части кадрового датчика, она рассматривает разные зоны внутри кадра. Какие зоны использовать и где эти зоны расположены, зависит от конкретной камеры.
Этот класс показывает, какие зоны используются конкретной камерой, и список зон можно получить с помощью экземпляра QCameraFocus.
Вы можете использовать эту информацию для визуального отображения обратной связи — например, для рисования прямоугольников вокруг областей кадрового датчика, которые находятся в фокусе, или изменения цвета зоны при переходе в фокус.
focus->setFocusPointMode(QCameraFocus::FocusPointAuto);
const QList<QCameraFocusZone> zones = focus->focusZones();
for (const QCameraFocusZone &zone : zones) {
if (zone.status() == QCameraFocusZone::Focused) {
// Draw a green box at zone.area()
} else if (zone.status() == QCameraFocusZone::Selected) {
// This area is selected for autofocusing, but is not in focus
// Draw a yellow box at zone.area()
}
} См. такжеQCameraFocus.
Документация по типам членов
Перечисление QCameraFocusZone::FocusZoneStatus
| Постоянная | Значение | Описание |
|---|---|---|
QCameraFocusZone::Invalid |
0 |
Эта зона недействительна |
QCameraFocusZone::Unused |
1 |
Эта зона может использоваться для автоматической фокусировки, но в настоящее время не используется. |
QCameraFocusZone::Selected |
2 |
Эта зона в настоящее время используется для автоматической фокусировки, но не находится в фокусе. |
QCameraFocusZone::Focused |
3 |
Эта зона используется для автоматической фокусировки и в настоящее время находится в фокусе. |
Документация по функциям-членам
QCameraFocusZone::QCameraFocusZone(const QCameraFocusZone &other)
Создает новый QCameraFocusZone как копию other.
QCameraFocusZone &QCameraFocusZone::operator=(const QCameraFocusZone &other)
Присваивает other этому QCameraFocusZone.
QCameraFocusZone::~QCameraFocusZone()
Удаляет этот QCameraFocusZone.
QRectF QCameraFocusZone::area() const
Возвращает область кадрового датчика, охватываемую этой зоной фокусировки.
Координаты находятся в относительных координатах кадра — QPointF(0,0) — это верхний левый угол кадра, а QPointF(1,1) — нижний правый.
bool QCameraFocusZone::isValid() const
Возвращает true, если у этой зоны фокусировки есть действительная область и статус.
QCameraFocusZone::FocusZoneStatus QCameraFocusZone::status() const
Возвращает текущий статус этой зоны фокусировки.
bool QCameraFocusZone::operator!=(const QCameraFocusZone &other) const
Возвращает true, если эта зона фокусировки не совпадает с other.
bool QCameraFocusZone::operator==(const QCameraFocusZone &other) const
Возвращает true, если эта зона фокусировки совпадает с other.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qcamerafocuszone.html