Comment utiliser un masque avec QPainter?
J'ai une forme (en bleu) chargé à partir d'un PNG avec de la transparence:
Alors je m'inspire de plusieurs cercles sur le dessus de cette forme (en rouge) avec QPainter::drawEllipse
.
Le résultat est quelque peu semblable à la troisième photo avec la forme rouge couvrant complètement le bleu:
Ce que je voudrais, cependant, est de la forme bleue à agir comme un masque pour le rouge, avec un résultat de ce genre:
Est-il possible de le faire avec QPainter?
source d'informationauteur this.lau_
Vous devez vous connecter pour publier un commentaire.
C'est possible. En supposant que vous êtes en train de charger votre PNG dans un QImage, vous pouvez faire quelque chose comme cela pour créer un masque à partir de votre image:
Voir les autres à
create*Mask
fonctions dans QImage pour des solutions de rechange.Ensuite, c'est une simple question de réglage du peintre clip région:
Voici un stupide démo (ne pas utiliser ce code comme-est, le chargement de l'image, le masque et la région de la création devrait être mis en cache, ils sont potentiellement onéreux):
Qui produit quelque chose comme ceci: