QCameraImageCapture 类

QCameraImageCapture 类用于媒体内容的录制。 更多...

头: #include <QCameraImageCapture>
qmake: QT += multimedia
继承: QObject and QMediaBindableInterface

公共类型

enum CaptureDestination { CaptureToFile, CaptureToBuffer }
flags CaptureDestinations
enum DriveMode { SingleImageCapture }
enum Error { NoError, NotReadyError, ResourceError, OutOfSpaceError, NotSupportedFeatureError, FormatError }

特性

公共函数

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

公共槽

void cancelCapture ()
int capture (const QString & file = QString())

信号

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 )

重实现保护函数

virtual bool setMediaObject (QMediaObject * mediaObject ) override

详细描述

The QCameraImageCapture class is a high level images recording class. It's not intended to be used alone but for accessing the media recording functions of other media objects, like 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 .

成员类型文档编制

enum QCameraImageCapture:: CaptureDestination
flags QCameraImageCapture:: CaptureDestinations

常量 描述
QCameraImageCapture::CaptureToFile 0x01 Capture the image to a file.
QCameraImageCapture::CaptureToBuffer 0x02 Capture the image to a buffer for further processing.

The CaptureDestinations type is a typedef for QFlags <CaptureDestination>. It stores an OR combination of CaptureDestination values.

enum QCameraImageCapture:: DriveMode

常量 描述
QCameraImageCapture::SingleImageCapture 0 Drive mode is capturing a single picture.

enum QCameraImageCapture:: Error

常量 描述
QCameraImageCapture::NoError 0 没有错误。
QCameraImageCapture::NotReadyError 1 The service is not ready for capture yet.
QCameraImageCapture::ResourceError 2 Device is not ready or not available.
QCameraImageCapture::OutOfSpaceError 3 No space left on device.
QCameraImageCapture::NotSupportedFeatureError 4 Device does not support stillimages capture.
QCameraImageCapture::FormatError 5 Current format is not supported.

特性文档编制

readyForCapture : const bool

This property holds whether the service is ready to capture a an image immediately.

调用 capture () while readyForCapture is false is not permitted and results in an error.

访问函数:

bool isReadyForCapture () const

通知程序信号:

void readyForCaptureChanged (bool ready )

成员函数文档编制

QCameraImageCapture:: QCameraImageCapture ( QMediaObject * mediaObject , QObject * parent = nullptr)

Constructs a media recorder which records the media produced by mediaObject .

parent 会被传递给 QMediaObject .

[signal] void QCameraImageCapture:: bufferFormatChanged ( QVideoFrame::PixelFormat format )

Signal emitted when the buffer format for the buffer image capture has changed.

[slot] void QCameraImageCapture:: cancelCapture ()

Cancel incomplete capture requests. Already captured and queused for proicessing images may be discarded.

[slot] int QCameraImageCapture:: capture (const QString & file = QString())

Capture the image and save it to file . This operation is asynchronous in majority of cases, followed by signals QCameraImageCapture::imageExposed (), QCameraImageCapture::imageCaptured (), QCameraImageCapture::imageSaved () 或 QCameraImageCapture::error ().

If an empty file is passed, the camera backend choses the default location and naming scheme for photos on the system, if only file name without full path is specified, the image will be saved to the default directory, with a full path reported with imageCaptured () 和 imageSaved () 信号。

QCamera saves all the capture parameters like exposure settings or image processing parameters, so changes to camera parameters after capture() is called do not affect previous capture requests.

QCameraImageCapture::capture returns the capture Id parameter, used with imageExposed (), imageCaptured () 和 imageSaved () 信号。

另请参阅 isReadyForCapture ().

[signal] void QCameraImageCapture:: captureDestinationChanged ( QCameraImageCapture::CaptureDestinations destination )

Signal emitted when the capture destination 已改变。

[signal] void QCameraImageCapture:: error ( int id , QCameraImageCapture::Error error , const QString & errorString )

Signals that the capture request id has failed with an error and errorString description.

注意: 信号 error 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(cameraImageCapture, QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error),
    [=](int id, QCameraImageCapture::Error error, const QString &errorString){ /* ... */ });
					

[signal] void QCameraImageCapture:: imageAvailable ( int id , const QVideoFrame & frame )

Signal emitted when the frame with request id 可用。

[signal] void QCameraImageCapture:: imageCaptured ( int id , const QImage & preview )

Signal emitted when the frame with request id was captured, but not processed and saved yet. Frame preview can be displayed to user.

[signal] void QCameraImageCapture:: imageExposed ( int id )

Signal emitted when the frame with request id was exposed.

[signal] void QCameraImageCapture:: imageMetadataAvailable ( int id , const QString & key , const QVariant & value )

Signals that a metadata for an image with request id is available. Also includes the key and value of the metadata.

This signal is emitted between imageExposed and imageSaved signals.

[signal] void QCameraImageCapture:: imageSaved ( int id , const QString & fileName )

Signal emitted when the frame with request id was saved to fileName .

[signal] void QCameraImageCapture:: readyForCaptureChanged ( bool ready )

Signals that a camera's ready for capture state has changed.

注意: 通知程序信号对于特性 readyForCapture .

[virtual] QCameraImageCapture:: ~QCameraImageCapture ()

Destroys images capture object.

QMultimedia::AvailabilityStatus QCameraImageCapture:: availability () const

Returns the availability of this functionality.

QVideoFrame::PixelFormat QCameraImageCapture:: bufferFormat () const

Returns the buffer image capture format being used.

另请参阅 supportedBufferFormats () 和 setBufferFormat ().

QCameraImageCapture::CaptureDestinations QCameraImageCapture:: captureDestination () const

Returns the image capture destination being used.

另请参阅 isCaptureDestinationSupported () 和 setCaptureDestination ().

QImageEncoderSettings QCameraImageCapture:: encodingSettings () const

Returns the image encoder settings being used.

另请参阅 setEncodingSettings ().

QCameraImageCapture::Error QCameraImageCapture:: error () const

返回当前错误状态。

另请参阅 errorString ().

QString QCameraImageCapture:: errorString () const

Returns a string describing the current error state.

另请参阅 error ().

QString QCameraImageCapture:: imageCodecDescription (const QString & codec ) const

Returns a description of an image codec .

bool QCameraImageCapture:: isAvailable () const

Returns true if the images capture service ready to use.

bool QCameraImageCapture:: isCaptureDestinationSupported ( QCameraImageCapture::CaptureDestinations destination ) const

Returns true if the image capture destination is supported; otherwise returns false.

另请参阅 captureDestination () 和 setCaptureDestination ().

[override virtual] QMediaObject *QCameraImageCapture:: mediaObject () const

重实现: QMediaBindableInterface::mediaObject () const.

另请参阅 setMediaObject ().

void QCameraImageCapture:: setBufferFormat (const QVideoFrame::PixelFormat format )

Sets the buffer image capture format to be used.

另请参阅 bufferFormat (), supportedBufferFormats (),和 captureDestination ().

void QCameraImageCapture:: setCaptureDestination ( QCameraImageCapture::CaptureDestinations destination )

Sets the capture destination to be used.

另请参阅 isCaptureDestinationSupported () 和 captureDestination ().

void QCameraImageCapture:: setEncodingSettings (const QImageEncoderSettings & settings )

Sets the image encoding settings .

If some parameters are not specified, or null settings are passed, the encoder choose the default encoding parameters.

另请参阅 encodingSettings ().

[override virtual protected] bool QCameraImageCapture:: setMediaObject ( QMediaObject * mediaObject )

重实现: QMediaBindableInterface::setMediaObject (QMediaObject *object).

另请参阅 mediaObject ().

QList < QVideoFrame::PixelFormat > QCameraImageCapture:: supportedBufferFormats () const

Returns the list of supported buffer image capture formats.

另请参阅 bufferFormat () 和 setBufferFormat ().

QStringList QCameraImageCapture:: supportedImageCodecs () const

Returns a list of supported image codecs.

QList < QSize > QCameraImageCapture:: supportedResolutions (const QImageEncoderSettings & settings = QImageEncoderSettings(), bool * continuous = nullptr) const

Returns a list of resolutions images can be encoded at.

If non null image settings parameter is passed, the returned list is reduced to resolution supported with partial settings like image codec or quality applied.

If the encoder supports arbitrary resolutions within the supported range, * continuous is set to true, otherwise * continuous 被设为 false。

另请参阅 QImageEncoderSettings::resolution ().