Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QImageCapture Class Reference

\inmodule QtMultimedia More...

#include <qimagecapture.h>

+ Inheritance diagram for QImageCapture:
+ Collaboration diagram for QImageCapture:

Public Types

enum  Error {
  NoError , NotReadyError , ResourceError , OutOfSpaceError ,
  NotSupportedFeatureError , FormatError
}
 \value NoError No Errors. More...
 
enum  Quality {
  VeryLowQuality , LowQuality , NormalQuality , HighQuality ,
  VeryHighQuality
}
 Enumerates quality encoding levels. More...
 
enum  FileFormat {
  UnspecifiedFormat , JPEG , PNG , WebP ,
  Tiff , LastFileFormat = Tiff
}
 Choose one of the following image formats: More...
 

Public Slots

int captureToFile (const QString &location=QString())
 Capture the image and save it to file.
 
int capture ()
 Capture the image and make it available as a QImage.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void errorChanged ()
 
void errorOccurred (int id, QImageCapture::Error error, const QString &errorString)
 Signals that the capture request id has failed with an error and errorString description.
 
void readyForCaptureChanged (bool ready)
 Signals that a camera's ready for capture state has changed.
 
void metaDataChanged ()
 
void fileFormatChanged ()
 
void qualityChanged ()
 
void resolutionChanged ()
 Signals when the image resolution changes.
 
void imageExposed (int id)
 Signal emitted when the frame with request id was exposed.
 
void imageCaptured (int id, const QImage &preview)
 Signal emitted when the frame with request id was captured, but not processed and saved yet.
 
void imageMetadataAvailable (int id, const QMediaMetaData &metaData)
 Signals that an image identified by id has metaData.
 
void imageAvailable (int id, const QVideoFrame &frame)
 Signal emitted when the frame with request id is available.
 
void imageSaved (int id, const QString &fileName)
 Signal emitted when QImageCapture::CaptureToFile is set and the frame with request id was saved to fileName.
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QImageCapture (QObject *parent=nullptr)
 Constructs a image capture object, from a parent, that can capture individual still images produced by a camera.
 
 ~QImageCapture ()
 Destroys images capture object.
 
bool isAvailable () const
 Returns true if the images capture service ready to use.
 
QMediaCaptureSessioncaptureSession () const
 Returns the capture session this camera is connected to, or a nullptr if the camera is not connected to a capture session.
 
Error error () const
 
QString errorString () const
 
bool isReadyForCapture () const
 
FileFormat fileFormat () const
 
void setFileFormat (FileFormat format)
 Sets the image format.
 
QSize resolution () const
 Returns the resolution of the encoded image.
 
void setResolution (const QSize &)
 Sets the resolution of the encoded image.
 
void setResolution (int width, int height)
 Sets the width and height of the resolution of the encoded image.
 
Quality quality () const
 
void setQuality (Quality quality)
 Sets the image encoding quality.
 
QMediaMetaData metaData () const
 
void setMetaData (const QMediaMetaData &metaData)
 Replaces any existing meta data, to be embedded into the captured image, with a set of metaData.
 
void addMetaData (const QMediaMetaData &metaData)
 Adds additional metaData to any existing meta data, that is embedded into the captured image.
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Static Public Member Functions

static QList< FileFormatsupportedFormats ()
 Returns a list of supported file formats.
 
static QString fileFormatName (FileFormat c)
 Returns the name of the given format, f.
 
static QString fileFormatDescription (FileFormat c)
 Returns the description of the given file format, f.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 

Properties

bool readyForCapture
 Holds true if the camera is ready to capture an image immediately.
 
QMediaMetaData metaData
 The meta data that will get embedded into the image.
 
Error error
 Returns the current error state.
 
QString errorString
 Returns a string describing the current error state.
 
FileFormat fileFormat
 The image format.
 
Quality quality
 The image encoding quality.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Friends

class QMediaCaptureSession
 

Additional Inherited Members

- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

\inmodule QtMultimedia

The QImageCapture class is used for the recording of media content.

The QImageCapture 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.

See also
QCamera

Definition at line 25 of file qimagecapture.h.

Member Enumeration Documentation

◆ Error

\value NoError No Errors.

\value NotReadyError The service is not ready for capture yet. \value ResourceError Device is not ready or not available. \value OutOfSpaceError No space left on device. \value NotSupportedFeatureError Device does not support stillimages capture. \value FormatError Current format is not supported.

Enumerator
NoError 
NotReadyError 
ResourceError 
OutOfSpaceError 
NotSupportedFeatureError 
FormatError 

Definition at line 35 of file qimagecapture.h.

◆ FileFormat

Choose one of the following image formats:

\value UnspecifiedFormat No format specified \value JPEG .jpg or .jpeg format \value PNG .png format \value WebP .webp format \value Tiff .tiff format \omitvalue LastFileFormat

Enumerator
UnspecifiedFormat 
JPEG 
PNG 
WebP 
Tiff 
LastFileFormat 

Definition at line 56 of file qimagecapture.h.

◆ Quality

Enumerates quality encoding levels.

\value VeryLowQuality \value LowQuality \value NormalQuality \value HighQuality \value VeryHighQuality

Enumerator
VeryLowQuality 
LowQuality 
NormalQuality 
HighQuality 
VeryHighQuality 

Definition at line 46 of file qimagecapture.h.

Constructor & Destructor Documentation

◆ QImageCapture()

QImageCapture::QImageCapture ( QObject * parent = nullptr)
explicit

Constructs a image capture object, from a parent, that can capture individual still images produced by a camera.

You must connect both an image capture object and a QCamera to a capture session to capture images.

Definition at line 80 of file qimagecapture.cpp.

References QObject::connect(), d, error, imageAvailable(), QPlatformImageCapture::imageAvailable(), imageCaptured(), QPlatformImageCapture::imageCaptured(), imageExposed(), QPlatformImageCapture::imageExposed(), QPlatformImageCapture::imageMetadataAvailable(), imageMetadataAvailable(), imageSaved(), QPlatformImageCapture::imageSaved(), QPlatformMediaIntegration::instance(), NotReadyError, qWarning, readyForCaptureChanged(), QPlatformImageCapture::readyForCaptureChanged(), SIGNAL, and SLOT.

+ Here is the call graph for this function:

◆ ~QImageCapture()

QImageCapture::~QImageCapture ( )

Destroys images capture object.

Definition at line 127 of file qimagecapture.cpp.

References QImageCapturePrivate::captureSession, and QMediaCaptureSession::setImageCapture().

+ Here is the call graph for this function:

Member Function Documentation

◆ addMetaData()

void QImageCapture::addMetaData ( const QMediaMetaData & metaData)

Adds additional metaData to any existing meta data, that is embedded into the captured image.

Definition at line 210 of file qimagecapture.cpp.

References d, QMediaMetaData::keys(), metaData, setMetaData(), and QMediaMetaData::value().

+ Here is the call graph for this function:

◆ capture

int QImageCapture::capture ( )
slot

Capture the image and make it available as a QImage.

This operation is asynchronous in majority of cases, followed by signals QImageCapture::imageExposed(), QImageCapture::imageCaptured() or QImageCapture::error().

QImageCapture::capture returns the capture Id parameter, used with imageExposed(), imageCaptured() and imageSaved() signals.

See also
isReadyForCapture()

Definition at line 295 of file qimagecapture.cpp.

References d.

Referenced by camera_blah(), and overview_still().

+ Here is the caller graph for this function:

◆ captureSession()

QMediaCaptureSession * QImageCapture::captureSession ( ) const

Returns the capture session this camera is connected to, or a nullptr if the camera is not connected to a capture session.

Use QMediaCaptureSession::setImageCapture() to connect the image capture to a session.

Definition at line 149 of file qimagecapture.cpp.

References QImageCapturePrivate::captureSession.

Referenced by QMediaCaptureSession::setImageCapture().

+ Here is the caller graph for this function:

◆ captureToFile

int QImageCapture::captureToFile ( const QString & file = QString())
slot

Capture the image and save it to file.

This operation is asynchronous in majority of cases, followed by signals QImageCapture::imageExposed(), QImageCapture::imageCaptured(), QImageCapture::imageSaved() or QImageCapture::error().

If an empty file is passed, the camera back end chooses 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() and imageSaved() signals.

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.

QImageCapture::capture returns the capture Id parameter, used with imageExposed(), imageCaptured() and imageSaved() signals.

See also
isReadyForCapture()

Definition at line 265 of file qimagecapture.cpp.

References d, file, isReadyForCapture(), NotReadyError, and tr.

+ Here is the call graph for this function:

◆ error()

QImageCapture::Error QImageCapture::error ( ) const

Definition at line 162 of file qimagecapture.cpp.

◆ errorChanged

void QImageCapture::errorChanged ( )
signal

◆ errorOccurred

QImageCapture::errorOccurred ( int id,
QImageCapture::Error error,
const QString & errorString )
signal

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

◆ errorString()

QString QImageCapture::errorString ( ) const

Definition at line 175 of file qimagecapture.cpp.

◆ fileFormat()

QImageCapture::FileFormat QImageCapture::fileFormat ( ) const

Definition at line 370 of file qimagecapture.cpp.

References d, and UnspecifiedFormat.

◆ fileFormatChanged

void QImageCapture::fileFormatChanged ( )
signal

Referenced by setFileFormat().

+ Here is the caller graph for this function:

◆ fileFormatDescription()

QString QImageCapture::fileFormatDescription ( QImageCapture::FileFormat f)
static

Returns the description of the given file format, f.

Definition at line 431 of file qimagecapture.cpp.

References QString::fromUtf8(), JPEG, PNG, Tiff, UnspecifiedFormat, and WebP.

+ Here is the call graph for this function:

◆ fileFormatName()

QString QImageCapture::fileFormatName ( QImageCapture::FileFormat f)
static

Returns the name of the given format, f.

Definition at line 405 of file qimagecapture.cpp.

References QString::fromUtf8(), JPEG, PNG, Tiff, UnspecifiedFormat, and WebP.

Referenced by QQnxImageCapture::capture().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ imageAvailable

QImageCapture::imageAvailable ( int id,
const QVideoFrame & frame )
signal

Signal emitted when the frame with request id is available.

Referenced by QImageCapture().

+ Here is the caller graph for this function:

◆ imageCaptured

QImageCapture::imageCaptured ( int id,
const QImage & preview )
signal

Signal emitted when the frame with request id was captured, but not processed and saved yet.

Frame preview can be displayed to user.

Referenced by QImageCapture(), and QQuickImageCapture::QQuickImageCapture().

+ Here is the caller graph for this function:

◆ imageExposed

QImageCapture::imageExposed ( int id)
signal

Signal emitted when the frame with request id was exposed.

Referenced by QImageCapture().

+ Here is the caller graph for this function:

◆ imageMetadataAvailable

void QImageCapture::imageMetadataAvailable ( int id,
const QMediaMetaData & metaData )
signal

Signals that an image identified by id has metaData.

Referenced by QImageCapture().

+ Here is the caller graph for this function:

◆ imageSaved

QImageCapture::imageSaved ( int id,
const QString & fileName )
signal

Signal emitted when QImageCapture::CaptureToFile is set and the frame with request id was saved to fileName.

Referenced by QImageCapture().

+ Here is the caller graph for this function:

◆ isAvailable()

bool QImageCapture::isAvailable ( ) const

Returns true if the images capture service ready to use.

Definition at line 137 of file qimagecapture.cpp.

References QImageCapturePrivate::control.

◆ isReadyForCapture()

bool QImageCapture::isReadyForCapture ( ) const

Definition at line 226 of file qimagecapture.cpp.

References camera, QMediaCaptureSession::camera, QCamera::captureSession(), d, and QCamera::isActive().

Referenced by captureToFile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ metaData()

QMediaMetaData QImageCapture::metaData ( ) const

Definition at line 187 of file qimagecapture.cpp.

References d.

◆ metaDataChanged

void QImageCapture::metaDataChanged ( )
signal

Referenced by setMetaData().

+ Here is the caller graph for this function:

◆ quality()

QImageCapture::Quality QImageCapture::quality ( ) const

Definition at line 515 of file qimagecapture.cpp.

References d, and NormalQuality.

◆ qualityChanged

void QImageCapture::qualityChanged ( )
signal

◆ readyForCaptureChanged

QImageCapture::readyForCaptureChanged ( bool ready)
signal

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

Referenced by QImageCapture().

+ Here is the caller graph for this function:

◆ resolution()

QSize QImageCapture::resolution ( ) const

Returns the resolution of the encoded image.

Definition at line 458 of file qimagecapture.cpp.

References d.

Referenced by setResolution().

+ Here is the caller graph for this function:

◆ resolutionChanged

void QImageCapture::resolutionChanged ( )
signal

Signals when the image resolution changes.

Referenced by setQuality(), and setResolution().

+ Here is the caller graph for this function:

◆ setFileFormat()

void QImageCapture::setFileFormat ( QImageCapture::FileFormat format)

Sets the image format.

Definition at line 379 of file qimagecapture.cpp.

References d, emit, fileFormatChanged(), and fmt.

+ Here is the call graph for this function:

◆ setMetaData()

void QImageCapture::setMetaData ( const QMediaMetaData & metaData)

Replaces any existing meta data, to be embedded into the captured image, with a set of metaData.

Definition at line 197 of file qimagecapture.cpp.

References d, emit, metaData, and metaDataChanged().

Referenced by addMetaData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setQuality()

void QImageCapture::setQuality ( Quality quality)

Sets the image encoding quality.

Definition at line 524 of file qimagecapture.cpp.

References d, emit, fmt, quality, and resolutionChanged().

+ Here is the call graph for this function:

◆ setResolution() [1/2]

void QImageCapture::setResolution ( const QSize & resolution)

Sets the resolution of the encoded image.

An empty QSize indicates the encoder should make an optimal choice based on what is available from the image source and the limitations of the codec.

Definition at line 476 of file qimagecapture.cpp.

References d, emit, fmt, resolution(), and resolutionChanged().

Referenced by setResolution().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setResolution() [2/2]

void QImageCapture::setResolution ( int width,
int height )

Sets the width and height of the resolution of the encoded image.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 494 of file qimagecapture.cpp.

References setResolution().

+ Here is the call graph for this function:

◆ supportedFormats()

QList< QImageCapture::FileFormat > QImageCapture::supportedFormats ( )
static

Returns a list of supported file formats.

See also
{QImageCapture::}{FileFormat}

Definition at line 397 of file qimagecapture.cpp.

References QPlatformMediaIntegration::instance().

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QMediaCaptureSession

friend class QMediaCaptureSession
friend

Definition at line 121 of file qimagecapture.h.

Property Documentation

◆ error

QImageCapture::error
read

Returns the current error state.

See also
errorString()

Definition at line 30 of file qimagecapture.h.

Referenced by QImageCapture().

◆ errorString

QImageCapture::errorString
read

Returns a string describing the current error state.

See also
error()

Definition at line 31 of file qimagecapture.h.

◆ fileFormat

QImageCapture::fileFormat
read

The image format.

Definition at line 32 of file qimagecapture.h.

◆ metaData

QImageCapture::metaData
readwrite

The meta data that will get embedded into the image.

Note
Additional fields such as a time stamp or location may get added by the camera back end.

Definition at line 29 of file qimagecapture.h.

Referenced by addMetaData(), and setMetaData().

◆ quality

QImageCapture::quality
read

The image encoding quality.

Definition at line 33 of file qimagecapture.h.

Referenced by setQuality().

◆ readyForCapture

QImageCapture::readyForCapture
read

Holds true if the camera is ready to capture an image immediately.

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

Definition at line 28 of file qimagecapture.h.


The documentation for this class was generated from the following files: