24class Q_MULTIMEDIA_EXPORT
QCamera :
public QObject
27 Q_PROPERTY(
bool active READ isActive WRITE setActive NOTIFY activeChanged)
29 Q_PROPERTY(QCameraDevice cameraDevice READ cameraDevice WRITE setCameraDevice NOTIFY cameraDeviceChanged)
30 Q_PROPERTY(Error error READ error NOTIFY errorChanged)
31 Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
32 Q_PROPERTY(QCameraFormat cameraFormat READ cameraFormat WRITE setCameraFormat NOTIFY cameraFormatChanged)
34 Q_PROPERTY(FocusMode focusMode READ focusMode WRITE setFocusMode NOTIFY focusModeChanged)
35 Q_PROPERTY(QPointF focusPoint READ focusPoint NOTIFY focusPointChanged)
36 Q_PROPERTY(QPointF customFocusPoint READ customFocusPoint WRITE setCustomFocusPoint NOTIFY customFocusPointChanged)
37 Q_PROPERTY(
float focusDistance READ focusDistance WRITE setFocusDistance NOTIFY focusDistanceChanged)
39 Q_PROPERTY(
float minimumZoomFactor READ minimumZoomFactor NOTIFY minimumZoomFactorChanged)
40 Q_PROPERTY(
float maximumZoomFactor READ maximumZoomFactor NOTIFY maximumZoomFactorChanged)
41 Q_PROPERTY(
float zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
42 Q_PROPERTY(
float exposureTime READ exposureTime NOTIFY exposureTimeChanged)
43 Q_PROPERTY(
float manualExposureTime READ manualExposureTime WRITE setManualExposureTime NOTIFY manualExposureTimeChanged)
44 Q_PROPERTY(
int isoSensitivity READ isoSensitivity NOTIFY isoSensitivityChanged)
45 Q_PROPERTY(
int manualIsoSensitivity READ manualIsoSensitivity WRITE setManualIsoSensitivity NOTIFY manualIsoSensitivityChanged)
46 Q_PROPERTY(
float exposureCompensation READ exposureCompensation WRITE setExposureCompensation NOTIFY exposureCompensationChanged)
47 Q_PROPERTY(QCamera::ExposureMode exposureMode READ exposureMode WRITE setExposureMode NOTIFY exposureModeChanged)
48 Q_PROPERTY(
bool flashReady READ isFlashReady NOTIFY flashReady)
49 Q_PROPERTY(QCamera::FlashMode flashMode READ flashMode WRITE setFlashMode NOTIFY flashModeChanged)
50 Q_PROPERTY(QCamera::TorchMode torchMode READ torchMode WRITE setTorchMode NOTIFY torchModeChanged)
52 Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged)
53 Q_PROPERTY(
int colorTemperature READ colorTemperature WRITE setColorTemperature NOTIFY colorTemperatureChanged)
54 Q_PROPERTY(Features supportedFeatures READ supportedFeatures NOTIFY supportedFeaturesChanged)
98 ExposureNightPortrait,
109 enum WhiteBalanceMode {
110 WhiteBalanceAuto = 0,
111 WhiteBalanceManual = 1,
112 WhiteBalanceSunlight = 2,
113 WhiteBalanceCloudy = 3,
114 WhiteBalanceShade = 4,
115 WhiteBalanceTungsten = 5,
116 WhiteBalanceFluorescent = 6,
117 WhiteBalanceFlash = 7,
118 WhiteBalanceSunset = 8
120 Q_ENUM(WhiteBalanceMode)
123 ColorTemperature = 0x1,
124 ExposureCompensation = 0x2,
125 IsoSensitivity = 0x4,
126 ManualExposureTime = 0x8,
127 CustomFocusPoint = 0x10,
130 Q_DECLARE_FLAGS(Features, Feature)
133 explicit QCamera(QObject *parent =
nullptr);
134 explicit QCamera(
const QCameraDevice& cameraDevice, QObject *parent =
nullptr);
135 explicit QCamera(QCameraDevice::Position position, QObject *parent =
nullptr);
138 bool isAvailable()
const;
139 bool isActive()
const;
141 QMediaCaptureSession *captureSession()
const;
143 QCameraDevice cameraDevice()
const;
144 void setCameraDevice(
const QCameraDevice &cameraDevice);
146 QCameraFormat cameraFormat()
const;
147 void setCameraFormat(
const QCameraFormat &format);
150 QString errorString()
const;
152 Features supportedFeatures()
const;
154 FocusMode focusMode()
const;
155 void setFocusMode(FocusMode mode);
156 Q_INVOKABLE
bool isFocusModeSupported(FocusMode mode)
const;
158 QPointF focusPoint()
const;
160 QPointF customFocusPoint()
const;
161 void setCustomFocusPoint(
const QPointF &point);
163 void setFocusDistance(
float d);
164 float focusDistance()
const;
166 float minimumZoomFactor()
const;
167 float maximumZoomFactor()
const;
168 float zoomFactor()
const;
169 void setZoomFactor(
float factor);
171 FlashMode flashMode()
const;
172 Q_INVOKABLE
bool isFlashModeSupported(FlashMode mode)
const;
173 Q_INVOKABLE
bool isFlashReady()
const;
175 TorchMode torchMode()
const;
176 Q_INVOKABLE
bool isTorchModeSupported(TorchMode mode)
const;
178 ExposureMode exposureMode()
const;
179 Q_INVOKABLE
bool isExposureModeSupported(ExposureMode mode)
const;
181 float exposureCompensation()
const;
183 int isoSensitivity()
const;
184 int manualIsoSensitivity()
const;
186 float exposureTime()
const;
187 float manualExposureTime()
const;
189 int minimumIsoSensitivity()
const;
190 int maximumIsoSensitivity()
const;
192 float minimumExposureTime()
const;
193 float maximumExposureTime()
const;
195 WhiteBalanceMode whiteBalanceMode()
const;
196 Q_INVOKABLE
bool isWhiteBalanceModeSupported(WhiteBalanceMode mode)
const;
198 int colorTemperature()
const;
201 void setActive(
bool active);
202 void start() { setActive(
true); }
203 void stop() { setActive(
false); }
205 void zoomTo(
float zoom,
float rate);
207 void setFlashMode(FlashMode mode);
208 void setTorchMode(TorchMode mode);
209 void setExposureMode(ExposureMode mode);
211 void setExposureCompensation(
float ev);
213 void setManualIsoSensitivity(
int iso);
214 void setAutoIsoSensitivity();
216 void setManualExposureTime(
float seconds);
217 void setAutoExposureTime();
219 void setWhiteBalanceMode(WhiteBalanceMode mode);
220 void setColorTemperature(
int colorTemperature);
223 void activeChanged(
bool);
225 void errorOccurred(QCamera::Error error,
const QString &errorString);
226 void cameraDeviceChanged();
227 void cameraFormatChanged();
228 void supportedFeaturesChanged();
230 void focusModeChanged();
231 void zoomFactorChanged(
float);
232 void minimumZoomFactorChanged(
float);
233 void maximumZoomFactorChanged(
float);
234 void focusDistanceChanged(
float);
235 void focusPointChanged();
236 void customFocusPointChanged();
238 void flashReady(
bool);
239 void flashModeChanged();
240 void torchModeChanged();
242 void exposureTimeChanged(
float speed);
243 void manualExposureTimeChanged(
float speed);
244 void isoSensitivityChanged(
int);
245 void manualIsoSensitivityChanged(
int);
246 void exposureCompensationChanged(
float);
247 void exposureModeChanged();
249 void whiteBalanceModeChanged() QT6_ONLY(
const);
250 void colorTemperatureChanged() QT6_ONLY(
const);
251 void brightnessChanged();
252 void contrastChanged();
253 void saturationChanged();
257 class QPlatformCamera *platformCamera();
258 void setCaptureSession(QMediaCaptureSession *session);
259 friend class QMediaCaptureSession;
260 Q_DISABLE_COPY(QCamera)
261 Q_DECLARE_PRIVATE(QCamera)
262 friend class QCameraDevice;