Класс 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 = Q_NULLPTR) | |
| ~QCameraImageCapture() | |
| QMultimedia::AvailabilityStatus | availability() const |
| QVideoFrame::PixelFormat | bufferFormat() const |
| CaptureDestinations | captureDestination() const |
| QImageEncoderSettings | encodingSettings() const |
| Error | error() const |
| QString | errorString() const |
| QString | imageCodecDescription(const QString &codec) const |
| bool | isAvailable() const |
| bool | isCaptureDestinationSupported(CaptureDestinations destination) const |
| bool | isReadyForCapture() const |
| void | setBufferFormat(const QVideoFrame::PixelFormat format) |
| void | setCaptureDestination(CaptureDestinations destination) |
| void | setEncodingSettings(const QImageEncoderSettings &settings) |
| QList<QVideoFrame::PixelFormat> | supportedBufferFormats() const |
| QStringList | supportedImageCodecs() const |
| QList<QSize> | supportedResolutions(const QImageEncoderSettings &settings = QImageEncoderSettings(), bool *continuous = Q_NULLPTR) const |
Переопределённые открытые функции
| virtual QMediaObject * | mediaObject() const |
- 31 открытая функция унаследована от 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 &buffer) |
| 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) |
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QMediaBindableInterface
Дополнительные унаследованные члены
- 11 статических открытых членов унаследованы от QObject
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QMediaBindableInterface
Подробное описание
Класс 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 является псевдонимом для QFlags<CaptureDestination>. Он хранит логическое ИЛИ комбинацию значений CaptureDestination.
enum QCameraImageCapture::DriveMode
| Постоянная | Значение | Описание |
|---|---|---|
QCameraImageCapture::SingleImageCapture |
0 |
Режим съемки — одиночное изображение. |
enum 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 = Q_NULLPTR)
Создаёт объект записи медиа, который записывает медиа, созданные объектом mediaObject.
parent передаётся объекту QMediaObject.
QCameraImageCapture::~QCameraImageCapture()
Удаляет объект захвата изображений.
QMultimedia::AvailabilityStatus QCameraImageCapture::availability() const
Возвращает доступность этой функциональности.
QVideoFrame::PixelFormat QCameraImageCapture::bufferFormat() const
Возвращает формат буфера, используемый для захвата изображения.
См. также supportedBufferFormats() и setBufferFormat().
[signal] void QCameraImageCapture::bufferFormatChanged(QVideoFrame::PixelFormat 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 возвращает параметр идентификатора захвата, используемый сигналами imageExposed(), imageCaptured() и imageSaved().
См. также isReadyForCapture().
CaptureDestinations QCameraImageCapture::captureDestination() const
Возвращает используемое место назначения для захвата изображения.
См. также isCaptureDestinationSupported() и setCaptureDestination().
[signal] void QCameraImageCapture::captureDestinationChanged(QCameraImageCapture::CaptureDestinations destination)
Сигнал, генерируемый при изменении места назначения захвата.
QImageEncoderSettings QCameraImageCapture::encodingSettings() const
Возвращает используемые параметры кодирования изображения.
См. также setEncodingSettings().
Error QCameraImageCapture::error() const
Возвращает текущее состояние ошибки.
См. также errorString().
[signal] void QCameraImageCapture::error(int id, QCameraImageCapture::Error error, const QString &errorString)
Сигнализирует о том, что запрос на захват с id завершился ошибкой с описанием error и errorString.
Примечание: Сигнал error перегружен в этом классе. Чтобы подключиться к этому сигналу с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом преобразовании, как показано в этом примере:
connect(cameraImageCapture, static_cast<void(QCameraImageCapture::*)(int, QCameraImageCapture::Error, const QString &)>(&QCameraImageCapture::error),
[=](int id, QCameraImageCapture::Error error, const QString &errorString){ /* ... */ }); QString QCameraImageCapture::errorString() const
Возвращает строку, описывающую текущее состояние ошибки.
См. также error().
[signal] void QCameraImageCapture::imageAvailable(int id, const QVideoFrame &buffer)
Сигнал, генерируемый, когда кадр с запросом id доступен как buffer.
[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(CaptureDestinations destination) const
Возвращает true, если пункт назначения захвата изображения destination поддерживается; в противном случае возвращает false.
См. также captureDestination() и setCaptureDestination().
[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(CaptureDestinations destination)
Устанавливает пункт назначения захвата destination, который будет использоваться.
См. также isCaptureDestinationSupported() и captureDestination().
void QCameraImageCapture::setEncodingSettings(const QImageEncoderSettings &settings)
Устанавливает параметры кодирования изображения settings.
Если некоторые параметры не указаны или передан null-указатель, кодер выбирает значения параметров кодирования по умолчанию.
См. также encodingSettings().
[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 = Q_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.6/qcameraimagecapture.html