From f06e47613ae84c26d69eafd6dee73ca6e5f86701 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 1 Jul 2022 12:37:58 +0200 Subject: [PATCH] QskGraphic::fraomGraphic introduced --- src/graphic/QskGraphic.cpp | 15 +++++++++++++++ src/graphic/QskGraphic.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/graphic/QskGraphic.cpp b/src/graphic/QskGraphic.cpp index 7280c935..d2924e48 100644 --- a/src/graphic/QskGraphic.cpp +++ b/src/graphic/QskGraphic.cpp @@ -1068,6 +1068,21 @@ QskGraphic QskGraphic::fromPixmapAsImage( const QPixmap& pixmap ) return fromImage( pixmap.toImage() ); } +QskGraphic QskGraphic::fromGraphic( + const QskGraphic& graphic, const QskColorFilter& colorFilter ) +{ + if ( colorFilter.isIdentity() ) + return graphic; + + QskGraphic recoloredGraphic; + + QPainter painter( &recoloredGraphic ); + graphic.render( &painter, colorFilter ); + painter.end(); + + return recoloredGraphic; +} + #ifndef QT_NO_DEBUG_STREAM #include diff --git a/src/graphic/QskGraphic.h b/src/graphic/QskGraphic.h index ff27938f..29519e8b 100644 --- a/src/graphic/QskGraphic.h +++ b/src/graphic/QskGraphic.h @@ -125,6 +125,7 @@ class QSK_EXPORT QskGraphic : public QPaintDevice static QskGraphic fromImage( const QImage& ); static QskGraphic fromPixmap( const QPixmap& ); static QskGraphic fromPixmapAsImage( const QPixmap& ); + static QskGraphic fromGraphic( const QskGraphic&, const QskColorFilter& ); quint64 modificationId() const; QskHashValue hash( QskHashValue seed ) const;