Класс QCameraImageCapture
Класс QCameraImageCapture используется для записи медиа-контента. Подробнее...
| Заголовок: | #include <QCameraImageCapture> |
| qmake: | QT += multimedia |
| Наследуется от: | QObject и QMediaBindableInterface |
Типы публичного доступа
| Перечисление | CaptureDestination { CaptureToFile, CaptureToBuffer } |
| Флаги | CaptureDestinations |
| Перечисление | DriveMode { SingleImageCapture } |
| Перечисление | Error { NoError, NotReadyError, ResourceError, OutOfSpaceError, NotSupportedFeatureError, FormatError } |
Свойства
- readyForCapture : const bool
- 1 свойство унаследовано от QObject
Функции публичного доступа
| QCameraImageCapture(QMediaObject *mediaObject, QObject *parent = nullptr) | |
| virtual | ~QCameraImageCapture() |
| QMultimedia::AvailabilityStatus | availability() const |
| QVideoFrame::PixelFormat | bufferFormat() const |
| QCameraImageCapture::CaptureDestinations | captureDestination() const |
| QImageEncoderSettings | encodingSettings() const |
| QCameraImageCapture::Error | error() const |
| QString | errorString() const |
| QString | imageCodecDescription(const QString &codec) const |
| bool | isAvailable() const |
| bool | isCaptureDestinationSupported(QCameraImageCapture::CaptureDestinations destination) const |
| bool | isReadyForCapture() const |
| void | setBufferFormat(const QVideoFrame::PixelFormat format) |
| void | setCaptureDestination(QCameraImageCapture::CaptureDestinations destination) |
| void | setEncodingSettings(const QImageEncoderSettings &settings) |
| QList<QVideoFrame::PixelFormat> | supportedBufferFormats() const |
| QStringList | supportedImageCodecs() const |
| QList<QSize> | supportedResolutions(const QImageEncoderSettings &settings = QImageEncoderSettings(), bool *continuous = nullptr) const |
Переопределённые функции публичного доступа
| virtual QMediaObject * | mediaObject() const override |
- 34 функции публичного доступа унаследованы от QObject
- 1 функция публичного доступа унаследована от QMediaBindableInterface
Слот публичного доступа
| void | cancelCapture() |
| int | capture(const QString &file = QString()) |
- 1 слот публичного доступа унаследован от QObject
Сигналы
| void | bufferFormatChanged(QVideoFrame::PixelFormat format) |
| void | captureDestinationChanged(QCameraImageCapture::CaptureDestinations destination) |
| void | error(int id, QCameraImageCapture::Error error, const QString &errorString) |
| void | imageAvailable(int id, const QVideoFrame &frame) |
| void | imageCaptured(int id, const QImage &preview) |
| void | imageExposed(int id) |
| void | imageMetadataAvailable(int id, const QString &key, const QVariant &value) |
| void | imageSaved(int id, const QString &fileName) |
| void | readyForCaptureChanged(bool ready) |
- 2 сигнала унаследованы от QObject
Переопределённые защищённые функции
| virtual bool | setMediaObject(QMediaObject *mediaObject) override |
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QMediaBindableInterface
Дополнительные унаследованные члены
- 1 переменная публичного доступа унаследована от QObject
- 10 статические члены публичного доступа унаследованы от QObject
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QMediaBindableInterface
- 2 защищённые переменные унаследованы от QObject
Подробное описание
Класс QCameraImageCapture используется для записи медиа-контента.
Класс QCameraImageCapture — это класс высокого уровня для записи изображений. Он не предназначен для самостоятельного использования, но для доступа к функциям записи медиа других медиа-объектов, таких как QCamera.
camera = new QCamera; viewfinder = new QCameraViewfinder(); viewfinder->show(); camera->setViewfinder(viewfinder); imageCapture = new QCameraImageCapture(camera); camera->setCaptureMode(QCamera::CaptureStillImage); camera->start(); //on half pressed shutter button camera->searchAndLock(); //on shutter button pressed imageCapture->capture(); //on shutter button released camera->unlock();
См. также QCamera.
Документация по типам членов
Перечисление QCameraImageCapture::CaptureDestinationФлаги QCameraImageCapture::CaptureDestinations
| Постоянная | Значение | Описание |
|---|---|---|
QCameraImageCapture::CaptureToFile |
0x01 |
Захватить изображение в файл. |
QCameraImageCapture::CaptureToBuffer |
0x02 |
Захватить изображение в буфер для дальнейшей обработки. |
Тип CaptureDestinations — это typedef для QFlags<CaptureDestination>. Он хранит логическое ИЛИ сочетание значений CaptureDestination.
перечисление QCameraImageCapture::DriveMode
| Постоянная | Значение | Описание |
|---|---|---|
QCameraImageCapture::SingleImageCapture |
0 |
Режим работы — захват одной фотографии. |
перечисление QCameraImageCapture::Error
| Постоянная | Значение | Описание |
|---|---|---|
QCameraImageCapture::NoError |
0 |
Нет ошибок. |
QCameraImageCapture::NotReadyError |
1 |
Сервис ещё не готов к захвату. |
QCameraImageCapture::ResourceError |
2 |
Устройство не готово или недоступно. |
QCameraImageCapture::OutOfSpaceError |
3 |
На устройстве закончилось место. |
QCameraImageCapture::NotSupportedFeatureError |
4 |
Устройство не поддерживает захват статических изображений. |
QCameraImageCapture::FormatError |
5 |
Текущий формат не поддерживается. |
Документация по свойствам
readyForCapture : const bool
Это свойство указывает, готов ли сервис к немедленному захвату изображения.
Вызов capture() в то время, когда readyForCapture false запрещено и приводит к ошибке.
Функции доступа:
| bool | isReadyForCapture() const |
Сигнал уведомления:
| void | readyForCaptureChanged(bool ready) |
Документация по членам-функциям
QCameraImageCapture::QCameraImageCapture(QMediaObject *mediaObject, QObject *parent = nullptr)
Создаёт объект записи медиа, который записывает медиа, производимое объектом mediaObject.
parent передаётся объекту QMediaObject.
[virtual] QCameraImageCapture::~QCameraImageCapture()
Удаляет объект захвата изображений.
QMultimedia::AvailabilityStatus QCameraImageCapture::availability() const
Возвращает доступность данной функциональности.
QVideoFrame::PixelFormat QCameraImageCapture::bufferFormat() const
Возвращает используемый формат буферного изображения для захвата.
См. также supportedBufferFormats() и setBufferFormat().
[signal] void QCameraImageCapture::bufferFormatChanged(QVideoFrame::PixelFormat format)
Сигнал, который генерируется при изменении формата буфера format для буферного захвата изображения.
[slot] void QCameraImageCapture::cancelCapture()
Отмена неполных запросов на захват. Уже захваченные и поставленные в очередь изображения для обработки могут быть отброшены.
[slot] int QCameraImageCapture::capture(const QString &file = QString())
Захват изображения и сохранение его в файл file. Данная операция в большинстве случаев асинхронна, за которой следуют сигналы QCameraImageCapture::imageExposed(), QCameraImageCapture::imageCaptured(), QCameraImageCapture::imageSaved() или QCameraImageCapture::error().
Если передаётся пустой file, бэкэнд камеры выбирает расположение и схему именования по умолчанию для фотографий в системе. Если указано только имя файла без полного пути, изображение будет сохранено в папку по умолчанию, и полный путь будет сообщён с помощью сигналов imageCaptured() и imageSaved().
QCamera сохраняет все параметры захвата, такие как параметры экспозиции или параметры обработки изображения, поэтому изменения параметров камеры после вызова capture() не влияют на предыдущие запросы на захват.
QCameraImageCapture::capture возвращает параметр id захвата, используемый с сигналами imageExposed(), imageCaptured() и imageSaved().
См. также isReadyForCapture().
QCameraImageCapture::CaptureDestinations QCameraImageCapture::captureDestination() const
Возвращает место назначения захвата изображения.
См. также isCaptureDestinationSupported() и setCaptureDestination().
[signal] void QCameraImageCapture::captureDestinationChanged(QCameraImageCapture::CaptureDestinations destination)
Сигнал, который генерируется при изменении места назначения destination захвата.
QImageEncoderSettings QCameraImageCapture::encodingSettings() const
Возвращает используемые параметры кодирования изображения.
См. также setEncodingSettings().
QCameraImageCapture::Error QCameraImageCapture::error() const
Возвращает текущее состояние ошибки.
См. также errorString().
[signal] void QCameraImageCapture::error(int id, QCameraImageCapture::Error error, const QString &errorString)
Сигнализирует о том, что запрос захвата id завершился неудачно с ошибкой error и описанием errorString.
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя функции Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:
connect(cameraImageCapture, QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error),
[=](int id, QCameraImageCapture::Error error, const QString &errorString){ /* ... */ }); QString QCameraImageCapture::errorString() const
Возвращает строку, описывающую текущее состояние ошибки.
См. также error().
[signal] void QCameraImageCapture::imageAvailable(int id, const QVideoFrame &frame)
Сигнал, который генерируется, когда кадр frame с запросом id становится доступным.
[signal] void QCameraImageCapture::imageCaptured(int id, const QImage &preview)
Сигнал, который генерируется, когда кадр с запросом id был захвачен, но ещё не обработан и не сохранён. Кадр preview может быть отображён пользователю.
QString QCameraImageCapture::imageCodecDescription(const QString &codec) const
Возвращает описание кодека codec изображения.
[signal] void QCameraImageCapture::imageExposed(int id)
Сигнал, который генерируется, когда кадр с запросом id был подвергнут экспозиции.
[signal] void QCameraImageCapture::imageMetadataAvailable(int id, const QString &key, const QVariant &value)
Сигнализирует о доступности метаданных изображения с запросом id. Также включает ключ key и значение value метаданных.
Этот сигнал генерируется между сигналами imageExposed и imageSaved.
[signal] void QCameraImageCapture::imageSaved(int id, const QString &fileName)
Сигнал, генерируемый при сохранении кадра с запросом id в файл fileName.
bool QCameraImageCapture::isAvailable() const
Возвращает true, если служба захвата изображений готова к использованию.
bool QCameraImageCapture::isCaptureDestinationSupported(QCameraImageCapture::CaptureDestinations destination) const
Возвращает true, если место назначения захвата изображения destination поддерживается; в противном случае возвращает false.
См. также captureDestination() и setCaptureDestination().
[override virtual] QMediaObject *QCameraImageCapture::mediaObject() const
Переопределено из QMediaBindableInterface::mediaObject().
См. также setMediaObject().
[signal] void QCameraImageCapture::readyForCaptureChanged(bool ready)
Сигнализирует о том, что состояние готовности камеры к захвату ready изменилось.
Примечание: Сигнал-уведомление для свойства readyForCapture.
void QCameraImageCapture::setBufferFormat(const QVideoFrame::PixelFormat format)
Устанавливает формат буфера для захвата изображений format.
См. также bufferFormat(), supportedBufferFormats() и captureDestination().
void QCameraImageCapture::setCaptureDestination(QCameraImageCapture::CaptureDestinations destination)
Устанавливает место назначения захвата destination.
См. также isCaptureDestinationSupported() и captureDestination().
void QCameraImageCapture::setEncodingSettings(const QImageEncoderSettings &settings)
Устанавливает параметры кодирования изображения settings.
Если некоторые параметры не указаны или передан null, кодер выбирает параметры кодирования по умолчанию.
См. также encodingSettings().
[override virtual protected] bool QCameraImageCapture::setMediaObject(QMediaObject *mediaObject)
Переопределено из QMediaBindableInterface::setMediaObject().
См. также mediaObject().
QList<QVideoFrame::PixelFormat> QCameraImageCapture::supportedBufferFormats() const
Возвращает список поддерживаемых форматов буфера для захвата изображений.
См. также bufferFormat() и setBufferFormat().
QStringList QCameraImageCapture::supportedImageCodecs() const
Возвращает список поддерживаемых кодеков изображений.
QList<QSize> QCameraImageCapture::supportedResolutions(const QImageEncoderSettings &settings = QImageEncoderSettings(), bool *continuous = nullptr) const
Возвращает список разрешений, при которых изображения могут быть закодированы.
Если передан ненулевой параметр settings, возвращаемый список уменьшается до разрешений, поддерживаемых с частичными настройками, такими как кодек изображения или применённое качество.
Если кодер поддерживает произвольные разрешения в поддерживаемом диапазоне, *continuous устанавливается в true, в противном случае *continuous устанавливается в false.
См. также QImageEncoderSettings::resolution().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qcameraimagecapture.html