Dessin d'une nouvelle “couche” en C#
La construction d'un petit programme de peinture et suis en train d'intégrer le concept de couches.
Je suis en utilisant un contrôle PictureBox pour afficher l'image, et l'obtention de l'objet Graphique à partir de l'image affichée par le PictureBox et de dessin.
Mon problème est que je suis à essayer de comprendre comment dessiner un nouvel objet Graphique qui est superposé sur le dessus de la zone d'image, et être en mesure d'obtenir la nouvelle image tracée sans l'image d'origine absorbé dans le graphique.
Si je fais quelque chose comme:
Graphics gr = Graphics.FromImage(myPictureBox.image);
gr.DrawRectangle(blah blah)
...Je suis d'édition de l'image d'origine dans la zone d'image. Je veux un moyen de capturer uniquement les nouveaux trucs dessinée comme une image distincte, mais encore à l'affiche en surimpression sur le dessus de ce qui était déjà là.
Toute personne en mesure de me pointer dans la bonne direction? Merci!
OriginalL'auteur ARW | 2012-10-03
Vous devez vous connecter pour publier un commentaire.
exemple de code qui fonctionne bien - prendre une image factice et les couches de l'image d'origine avec texte personnalisé
OriginalL'auteur Rao
Je pense à utiliser la commande transparente et de faire quelques modifications de sorte qu'il peut être utilisé comme les calques de l'image:
http://www.codeproject.com/Articles/26878/Making-Transparent-Controls-No-Flickering
Probablement quelque chose comme ceci (aucune modification, si nécessaire).
Exemple comment l'utiliser:
Avec cette méthode, vous pouvez avoir plusieurs couches, qui peuvent se chevauchent les uns les autres (en raison de la fonctionnalité de transparence, il a).
Si vous voulez l'ajouter en haut de votre PictureBox assurez-vous de commander à nouveau le contrôle. Le Contrôle de la Couche doit être ajouté avant votre contrôle PictureBox.
J'espère que ça aide.
Nice, je dois l'essayer.. merci pour le partage. Le lien n'est pas bon.
OriginalL'auteur KaR
Ai eu de travail, peut-être que je n'ai pas été assez clair dans ma question initiale.
Essentiellement ce que j'ai fait était de stockage de chaque couche comme une Image distincte de l'objet, alors il suffit d'accrochage dans la méthode OnPaint de ma commande et à la main le dessin de graphiques dans l'ordre, au lieu de simplement le dessin à l'objet PictureBox.Image. Fonctionne comme un charme!
OriginalL'auteur ARW
Les capacités graphiques de .NET dessin bibliothèques sont simples. Leur but principal est tracé direct de l'interface graphique. Si vous voulez avoir de la superposition, de la transparence alpha ou les filtres avancés, alors vous devez soit utiliser la 3ème partie de la bibliothèque ou de rouler votre propre code de dessin.
OriginalL'auteur Euphoric