Класс QImageCapture
Класс QImageCapture используется для записи медиаконтента. Подробнее...
| Заголовок: | #include <QImageCapture> |
| CMake: | find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| Наследует: | QObject |
Открытые типы
| Перечисление | Ошибка { НетОшибок, НеГотовКЗаписи, ОшибкаРесурса, ОшибкаНедостаткаПамять, ОшибкаНеПоддерживаемойФункции, ОшибкаФормата } |
| Перечисление | Качество { ОченьНизкоеКачество, НизкоеКачество, НормальноеКачество, ВысокоеКачество, ОченьВысокоеКачество } |
Свойства
- fileFormat : const FileFormat
- metaData : QMediaMetaData
- quality : const Качество
- readyForCapture : const bool
Открытые функции
| QImageCapture(QObject *parent = nullptr) | |
| virtual | ~QImageCapture() |
| void | addMetaData(const QMediaMetaData &metaData) |
| QMediaCaptureSession * | captureSession() const |
| QImageCapture::Ошибка | error() const |
| QString | errorString() const |
| QImageCapture::FileFormat | fileFormat() const |
| bool | isAvailable() const |
| bool | isReadyForCapture() const |
| QMediaMetaData | metaData() const |
| QImageCapture::Качество | quality() const |
| QSize | resolution() const |
| void | setFileFormat(QImageCapture::FileFormat format) |
| void | setMetaData(const QMediaMetaData &metaData) |
| void | setQuality(QImageCapture::Качество quality) |
| void | setResolution(const QSize &resolution) |
| void | setResolution(int width, int height) |
Открытые слоты
| int | capture() |
| int | captureToFile(const QString &file = QString()) |
Сигналы
| void | errorChanged() |
| void | errorOccurred(int id, QImageCapture::Ошибка error, const QString &errorString) |
| void | fileFormatChanged() |
| void | imageAvailable(int id, const QVideoFrame &frame) |
| void | imageCaptured(int id, const QImage &preview) |
| void | imageExposed(int id) |
| void | imageSaved(int id, const QString &fileName) |
| void | metaDataChanged() |
| void | qualityChanged() |
| void | readyForCaptureChanged(bool ready) |
Подробное описание
Класс QImageCapture — это класс высокого уровня для записи изображений. Он не предназначен для самостоятельного использования, а для доступа к функциям записи медиа других медиаобъектов, таких как QCamera.
QMediaCaptureSession captureSession; camera = new QCamera; captureSession.setCamera(camera); QVideoWidget *preview = new QVideoWidget(); preview->show(); captureSession.setVideoOutput(preview); imageCapture = new QImageCapture(camera); captureSession.setImageCapture(imageCapture); camera->start(); //on shutter button pressed imageCapture->capture();
См. также QCamera.
Документация по типам членов
Перечисление QImageCapture::Ошибка
| Постоянная | Значение | Описание |
|---|---|---|
QImageCapture::NoError |
0 |
Нет ошибок. |
QImageCapture::NotReadyError |
1 |
Сервис еще не готов к записи. |
QImageCapture::ResourceError |
2 |
Устройство не готово или недоступно. |
QImageCapture::OutOfSpaceError |
3 |
На устройстве нет места. |
QImageCapture::NotSupportedFeatureError |
4 |
Устройство не поддерживает захват статических изображений. |
QImageCapture::FormatError |
5 |
Текущий формат не поддерживается. |
Перечисление QImageCapture::Качество
Перечисляет уровни кодирования качества.
| Постоянная | Значение |
|---|---|
QImageCapture::VeryLowQuality |
0 |
QImageCapture::LowQuality |
1 |
QImageCapture::NormalQuality |
2 |
QImageCapture::HighQuality |
3 |
QImageCapture::VeryHighQuality |
4 |
Документация свойств
[read-only] fileFormat : const FileFormat
Это свойство хранит формат изображения.
Функции доступа:
| QImageCapture::FileFormat | fileFormat() const |
Сигнал уведомления:
| void | fileFormatChanged() |
metaData : QMediaMetaData
Это свойство хранит метаданные, которые будут встроены в изображение.
Примечание: Дополнительные поля, такие как отметка времени или местоположение, могут быть добавлены бэкендом камеры.
Функции доступа:
| QMediaMetaData | metaData() const |
| void | setMetaData(const QMediaMetaData &metaData) |
Сигнал уведомления:
| void | metaDataChanged() |
[read-only] quality : const Quality
Это свойство хранит качество кодирования изображения.
Функции доступа:
| QImageCapture::Quality | quality() const |
Сигнал уведомления:
| void | qualityChanged() |
[read-only] readyForCapture : const bool
Содержит true значение, указывающее, готова ли камера к немедленному захвату изображения. Вызов capture() в то время, когда readyForCapture имеет значение false, запрещено и приводит к ошибке.
Функции доступа:
| bool | isReadyForCapture() const |
Сигнал уведомления:
| void | readyForCaptureChanged(bool ready) |
Документация функций-членов
QImageCapture::QImageCapture(QObject *parent = nullptr)
Создаёт объект захвата изображения, от parent, который может захватывать отдельные неподвижные изображения, создаваемые камерой.
Для захвата изображений необходимо подключить объект захвата изображения и QCamera к сессии захвата.
[slot] int QImageCapture::capture()
Захватывает изображение и делает его доступным как QImage. Эта операция в большинстве случаев асинхронна, за которой следуют сигналы QImageCapture::imageExposed(), QImageCapture::imageCaptured() или QImageCapture::error().
QImageCapture::capture возвращает параметр идентификатора захвата, используемый с сигналами imageExposed(), imageCaptured() и imageSaved().
См. также isReadyForCapture().
[slot] int QImageCapture::captureToFile(const QString &file = QString())
Захватывает изображение и сохраняет его в file. Эта операция в большинстве случаев асинхронна, за которой следуют сигналы QImageCapture::imageExposed(), QImageCapture::imageCaptured(), QImageCapture::imageSaved() или QImageCapture::error().
Если в качестве file передано пустое значение, бэкенд камеры выбирает стандартное местоположение и схему именования для фотографий в системе, если указано только имя файла без полного пути, изображение будет сохранено в стандартном каталоге, и полный путь будет указан в сигналах imageCaptured() и imageSaved().
QCamera сохраняет все параметры захвата, такие как параметры экспозиции или параметры обработки изображений, поэтому изменения параметров камеры после вызова capture() не влияют на предыдущие запросы захвата.
QImageCapture::capture возвращает параметр идентификатора захвата, используемый с сигналами imageExposed(), imageCaptured() и imageSaved().
См. также isReadyForCapture().
[signal] void QImageCapture::errorOccurred(int id, QImageCapture::Error error, const QString &errorString)
Сигнализирует о том, что запрос на захват id завершился неудачно с ошибкой error и описанием errorString.
[signal] void QImageCapture::imageAvailable(int id, const QVideoFrame &frame)
Сигнал, генерируемый, когда QImageCapture::CaptureToBuffer установлен и кадр frame с запросом id доступен.
[signal] void QImageCapture::imageCaptured(int id, const QImage &preview)
Сигнал генерируется, когда кадр с запросом id был захвачен, но ещё не обработан и сохранён. Кадр preview может быть отображён пользователю.
[signal] void QImageCapture::imageExposed(int id)
Сигнал генерируется, когда кадр с запросом id был подвергнут экспозиции.
[signal] void QImageCapture::imageSaved(int id, const QString &fileName)
Сигнал генерируется, когда QImageCapture::CaptureToFile установлен и кадр с запросом id был сохранён в fileName.
[signal] void QImageCapture::readyForCaptureChanged(bool ready)
Сигнализирует о том, что состояние готовности камеры к захвату ready изменилось.
Примечание: Сигнал уведомления для свойства readyForCapture.
[virtual] QImageCapture::~QImageCapture()
Удаляет объект захвата изображений.
void QImageCapture::addMetaData(const QMediaMetaData &metaData)
Добавляет дополнительные metaData к существующим метаданным, которые встраиваются в захваченное изображение.
QMediaCaptureSession *QImageCapture::captureSession() const
Возвращает сеанс захвата, к которому подключена эта камера, или nullptr, если камера не подключена к сеансу захвата.
Используйте QMediaCaptureSession::setImageCapture() для подключения захвата изображения к сеансу.
QImageCapture::Error QImageCapture::error() const
Возвращает текущее состояние ошибки.
Примечание: Функция-получатель для свойства error.
См. также errorString().
QString QImageCapture::errorString() const
Возвращает строку, описывающую текущее состояние ошибки.
Примечание: Функция-получатель для свойства errorString.
См. также error().
bool QImageCapture::isAvailable() const
Возвращает true, если служба захвата изображений готова к использованию.
QSize QImageCapture::resolution() const
Возвращает разрешение закодированного изображения.
См. также setResolution().
void QImageCapture::setFileFormat(QImageCapture::FileFormat format)
Устанавливает формат изображения format.
См. также fileFormat().
void QImageCapture::setMetaData(const QMediaMetaData &metaData)
Заменяет любые существующие метаданные, которые будут встроены в захваченное изображение, на заданные metaData.
Примечание: Функция-установитель для свойства metaData.
См. также metaData().
void QImageCapture::setQuality(QImageCapture::Quality quality)
Устанавливает качество кодирования изображения quality.
См. также quality().
void QImageCapture::setResolution(const QSize &resolution)
Устанавливает разрешение кодируемого изображения.
Пустой QSize указывает, что кодер должен выбрать оптимальный вариант, исходя из доступных данных источника изображения и ограничений кодека.
См. также resolution().
void QImageCapture::setResolution(int width, int height)
Устанавливает ширину и высоту разрешения кодируемого изображения.
Это перегруженный метод.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qimagecapture.html