diff options
author | Andrew den Exter <andrew.den.exter@jollamobile.com> | 2014-07-09 13:38:25 +1000 |
---|---|---|
committer | Andrew den Exter <andrew.den.exter@qinetic.com.au> | 2014-11-28 06:08:11 +0100 |
commit | 25ad679c254766a3ac0bf3925232052941485442 (patch) | |
tree | f56748cdde28851ac5438b53de93fb9fbf0c14ce /src/imports | |
parent | be7fef656a1d087d3d1d3fa102da4fce85855935 (diff) |
Add a color filter property to QCameraImageProcessing.
[ChangeLog] New color filter property for QCameraImageProcessing.
Change-Id: I999e349e3e4f284b533fa62ba50903fbd21cb400
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/multimedia/multimedia.cpp | 3 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecameraimageprocessing.cpp | 36 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecameraimageprocessing_p.h | 22 |
3 files changed, 60 insertions, 1 deletions
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp index 80dc4f82c..01b037a79 100644 --- a/src/imports/multimedia/multimedia.cpp +++ b/src/imports/multimedia/multimedia.cpp @@ -103,6 +103,9 @@ public: qmlRegisterUncreatableType<QDeclarativeCameraViewfinder>(uri, 5, 4, "CameraViewfinder", trUtf8("CameraViewfinder is provided by Camera")); + // 5.5 types + qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing, 1>(uri, 5, 5, "CameraImageProcessing", trUtf8("CameraImageProcessing is provided by Camera")); + qmlRegisterType<QDeclarativeMediaMetaData>(); } diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp index 26bac6ed4..d6d555887 100644 --- a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp +++ b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp @@ -220,6 +220,42 @@ void QDeclarativeCameraImageProcessing::setDenoisingLevel(qreal value) } /*! + \qmlproperty QtMultimedia::CameraImageProcessing::colorFilter + + This property holds which color filter if any will be applied to image data captured by the camera. + + It can be one of: + + \table + \row \li CameraImageProcessing.ColorFilterNone \li No filter is applied to images. + \row \li CameraImageProcessing.ColorFilterGrayscale \li A grayscale filter. + \row \li CameraImageProcessing.ColorFilterNegative \li A negative filter. + \row \li CameraImageProcessing.ColorFilterSolarize \li A solarize filter. + \row \li CameraImageProcessing.ColorFilterSepia \li A sepia filter. + \row \li CameraImageProcessing.ColorFilterPosterize \li A posterize filter. + \row \li CameraImageProcessing.ColorFilterWhiteboard \li A whiteboard filter. + \row \li CameraImageProcessing.ColorFilterBlackboard \li A blackboard filter. + \row \li CameraImageProcessing.ColorFilterAqua \li An aqua filter. + \row \li CameraImageProcessing.ColorFilterVendor \li The base value for vendor defined filters. + \endtable + + \since 5.5 +*/ + +QDeclarativeCameraImageProcessing::ColorFilter QDeclarativeCameraImageProcessing::colorFilter() const +{ + return ColorFilter(m_imageProcessing->colorFilter()); +} + +void QDeclarativeCameraImageProcessing::setColorFilter(ColorFilter filter) +{ + if (this->colorFilter() != filter) { + m_imageProcessing->setColorFilter(QCameraImageProcessing::ColorFilter(filter)); + emit colorFilterChanged(); + } +} + +/*! \qmlsignal QtMultimedia::Camera::whiteBalanceModeChanged(Camera::WhiteBalanceMode) This signal is emitted when the \c whiteBalanceMode property is changed. diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h index a7521f60e..65c607670 100644 --- a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h +++ b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h @@ -56,6 +56,7 @@ class QDeclarativeCameraImageProcessing : public QObject { Q_OBJECT Q_ENUMS(WhiteBalanceMode) + Q_ENUMS(ColorFilter) Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged) Q_PROPERTY(qreal manualWhiteBalance READ manualWhiteBalance WRITE setManualWhiteBalance NOTIFY manualWhiteBalanceChanged) @@ -63,7 +64,7 @@ class QDeclarativeCameraImageProcessing : public QObject Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY saturationChanged) Q_PROPERTY(qreal sharpeningLevel READ sharpeningLevel WRITE setSharpeningLevel NOTIFY sharpeningLevelChanged) Q_PROPERTY(qreal denoisingLevel READ denoisingLevel WRITE setDenoisingLevel NOTIFY denoisingLevelChanged) - + Q_PROPERTY(ColorFilter colorFilter READ colorFilter WRITE setColorFilter NOTIFY colorFilterChanged REVISION 1) public: enum WhiteBalanceMode { WhiteBalanceAuto = QCameraImageProcessing::WhiteBalanceAuto, @@ -78,6 +79,19 @@ public: WhiteBalanceVendor = QCameraImageProcessing::WhiteBalanceVendor }; + enum ColorFilter { + ColorFilterNone = QCameraImageProcessing::ColorFilterNone, + ColorFilterGrayscale = QCameraImageProcessing::ColorFilterGrayscale, + ColorFilterNegative = QCameraImageProcessing::ColorFilterNegative, + ColorFilterSolarize = QCameraImageProcessing::ColorFilterSolarize, + ColorFilterSepia = QCameraImageProcessing::ColorFilterSepia, + ColorFilterPosterize = QCameraImageProcessing::ColorFilterPosterize, + ColorFilterWhiteboard = QCameraImageProcessing::ColorFilterWhiteboard, + ColorFilterBlackboard = QCameraImageProcessing::ColorFilterBlackboard, + ColorFilterAqua = QCameraImageProcessing::ColorFilterAqua, + ColorFilterVendor = QCameraImageProcessing::ColorFilterVendor + }; + ~QDeclarativeCameraImageProcessing(); WhiteBalanceMode whiteBalanceMode() const; @@ -88,6 +102,8 @@ public: qreal sharpeningLevel() const; qreal denoisingLevel() const; + ColorFilter colorFilter() const; + public Q_SLOTS: void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const; void setManualWhiteBalance(qreal colorTemp) const; @@ -97,6 +113,8 @@ public Q_SLOTS: void setSharpeningLevel(qreal value); void setDenoisingLevel(qreal value); + void setColorFilter(ColorFilter colorFilter); + Q_SIGNALS: void whiteBalanceModeChanged(QDeclarativeCameraImageProcessing::WhiteBalanceMode) const; void manualWhiteBalanceChanged(qreal) const; @@ -106,6 +124,8 @@ Q_SIGNALS: void sharpeningLevelChanged(qreal); void denoisingLevelChanged(qreal); + void colorFilterChanged(); + private: friend class QDeclarativeCamera; QDeclarativeCameraImageProcessing(QCamera *camera, QObject *parent = 0); |