summaryrefslogtreecommitdiffstats
path: root/examples/multimediawidgets/camera
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-03-10 21:10:42 +0100
committerLars Knoll <lars.knoll@qt.io>2021-03-23 13:52:51 +0000
commit7765827dc65a6b8a6fb18a1e48b888d888d3797b (patch)
tree3b94d4af400cad27bd195535822be2a5a6030c6e /examples/multimediawidgets/camera
parentad62248c6b94d7288abf210a41e504e52049ef6a (diff)
Add V4L2 handling of image processing fields
Ported over from the camerabin code base. Change-Id: Ib1332f91cdf2ccdba0eb8779c5769444a4ea5cc5 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'examples/multimediawidgets/camera')
-rw-r--r--examples/multimediawidgets/camera/camera.cpp18
-rw-r--r--examples/multimediawidgets/camera/camera.ui91
2 files changed, 95 insertions, 14 deletions
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp
index 4baf145b3..c77af6482 100644
--- a/examples/multimediawidgets/camera/camera.cpp
+++ b/examples/multimediawidgets/camera/camera.cpp
@@ -134,6 +134,24 @@ void Camera::setCamera(const QCameraInfo &cameraInfo)
this, &Camera::displayCaptureError);
readyForCapture(m_imageCapture->isReadyForCapture());
+ QCameraImageProcessing *imageProcessing = m_camera->imageProcessing();
+ if (!imageProcessing) {
+ ui->brightnessSlider->setEnabled(false);
+ ui->contrastSlider->setEnabled(false);
+ ui->saturationSlider->setEnabled(false);
+ } else {
+ connect(ui->brightnessSlider, &QSlider::valueChanged, [imageProcessing](int value) {
+ imageProcessing->setBrightness(value/100.);
+ });
+ connect(ui->contrastSlider, &QSlider::valueChanged, [imageProcessing](int value) {
+ imageProcessing->setContrast(value/100.);
+ });
+ connect(ui->saturationSlider, &QSlider::valueChanged, [imageProcessing](int value) {
+ imageProcessing->setSaturation(value/100.);
+ });
+ }
+
+
updateCaptureMode();
m_camera->start();
}
diff --git a/examples/multimediawidgets/camera/camera.ui b/examples/multimediawidgets/camera/camera.ui
index e00e9d843..ad14096ba 100644
--- a/examples/multimediawidgets/camera/camera.ui
+++ b/examples/multimediawidgets/camera/camera.ui
@@ -25,21 +25,21 @@
<string>Image</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QPushButton" name="takeImageButton">
- <property name="enabled">
- <bool>false</bool>
- </property>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_3">
<property name="text">
- <string>Capture Photo</string>
+ <string>Contrast</string>
</property>
- <property name="icon">
- <iconset>
- <normaloff>:/images/shutter.svg</normaloff>:/images/shutter.svg</iconset>
+ </widget>
+ </item>
+ <item row="10" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Exposure Compensation:</string>
</property>
</widget>
</item>
- <item row="1" column="0">
+ <item row="9" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -52,14 +52,41 @@
</property>
</spacer>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="label">
+ <item row="7" column="0">
+ <widget class="QLabel" name="label_2">
<property name="text">
- <string>Exposure Compensation:</string>
+ <string>Saturation</string>
</property>
</widget>
</item>
<item row="3" column="0">
+ <widget class="QSlider" name="brightnessSlider">
+ <property name="minimum">
+ <number>-100</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QPushButton" name="takeImageButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Capture Photo</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>:/images/shutter.svg</normaloff>:/images/shutter.svg</iconset>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="0">
<widget class="QSlider" name="exposureCompensation">
<property name="minimum">
<number>-4</number>
@@ -78,6 +105,42 @@
</property>
</widget>
</item>
+ <item row="8" column="0">
+ <widget class="QSlider" name="saturationSlider">
+ <property name="minimum">
+ <number>-100</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Brightness</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QSlider" name="contrastSlider">
+ <property name="minimum">
+ <number>-100</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="tab">
@@ -130,7 +193,7 @@
</widget>
</item>
<item row="5" column="0">
- <widget class="QPushButton" name="metaDataButton">
+ <widget class="QPushButton" name="metaDataButton">
<property name="text">
<string>Set metadata</string>
</property>