X-Git-Url: https://www.flypig.org.uk/git/?p=harbour-pedalo.git;a=blobdiff_plain;f=src%2Fimageprovider.cpp;h=452fa977cf2fcd3b5d38e25d4353c3aab550e22e;hp=431fd23b0a67dac7c4466a194305ee01954ba197;hb=d8058e5edcec89d8103ead111f87dc9040323685;hpb=b0cf1cc508e82763046f46134347e8a37d7dddd6 diff --git a/src/imageprovider.cpp b/src/imageprovider.cpp index 431fd23..452fa97 100644 --- a/src/imageprovider.cpp +++ b/src/imageprovider.cpp @@ -15,6 +15,7 @@ QPixmap ImageProvider::requestPixmap(const QString &id, QSize *size, const QSize QPixmap image; QStringList parts = id.split('?'); QPixmap sourcePixmap(imageDir + parts.at(0) + ".png"); + QPixmap alphaMask(sourcePixmap); if (size) { *size = sourcePixmap.size(); @@ -22,8 +23,11 @@ QPixmap ImageProvider::requestPixmap(const QString &id, QSize *size, const QSize if (parts.length() > 1) { if (QColor::isValidColor(parts.at(1))) { QPainter painter(&sourcePixmap); - painter.setCompositionMode(QPainter::CompositionMode_SourceIn); + painter.setCompositionMode(QPainter::CompositionMode_SoftLight); painter.fillRect(sourcePixmap.rect(), parts.at(1)); + + painter.setCompositionMode(QPainter::CompositionMode_DestinationIn); + painter.drawPixmap(sourcePixmap.rect(), alphaMask); painter.end(); } }