2009-12-12 4 views
1

Je veux mettre en place une fonction caoutchouc tout comme photoshop, mais j'espère que le caoutchouc vient effacer les formes qui ont dessiné sur fond sans modifier l'arrière-plan. Maintenant, l'arrière-plan est une image, donc je ne peux pas utiliser le pinceau avec la couleur unique.Comment implémenter une couche avec GDI?

Répondre

1

Vous devez stocker chaque couche de l'image dans son propre tampon, puis les combiner pour la sortir. L'arrière-plan serait donc dans un objet Image et la forme dans un autre objet Image. Lorsque vous obtenez le message WM_Paint, vous devez combiner les deux images en une seule et en sortir (ou vous devez avoir les images pré-combinées dans un troisième objet Image en mémoire).

0

Si vous voulez simplement dessiner des lignes/formes simples comme une boîte de bandes de caoutchouc, la façon traditionnelle est d'utiliser des peintures exclusives. Cela "inverse" les couleurs sur lesquelles il est dessiné, ainsi dessiner la même forme une seconde fois l'efface et renvoie l'image originale.

De nos jours, les ordinateurs sont beaucoup plus puissants et nous avons tendance (comme Dave Markle) à combiner deux images séparées sur l'écran (il suffit de stocker l'image que vous éditez dans un bitmap hors écran). Cela vous permet de dessiner la superposition en utilisant n'importe quelle couleur/transparence, de sorte que vous pouvez le rendre beaucoup plus agréable.

Questions connexes