2009-06-14 8 views
1

Je développe un ensemble d'applications pour créer des jeux dans XNA. Utilisation de Graphics.drawImage Je peux facilement dessiner une image d'aperçu à partir d'un objet XNA texture2D. Chaque objet, par exemple un caractère, une carte, etc., est composé d'une liste de parties, chaque partie stockant des informations telles que la rotation de position et la source de texture. L'étape suivante consiste à afficher un aperçu de l'ensemble de l'objet au lieu d'une partie.Rendu de plusieurs images vers un bitmap en C# Winforms

Comment procéder? Est-ce que je peux juste traiter Graphics.drawImage comme appel de dessin XNA régulier et rendre la section de l'objet que je veux à un bitmap en bouclant la liste et en dessinant chaque article au bitmap en position et dans l'ordre? Ou est-ce que chaque appel de graphics.DrawImage détruit le bitmap qu'il dessine?

+0

De quoi est-ce que Graphics.DrawImage vous parlez? – RCIX

Répondre

2

Est-ce ce que vous cherchez?

Bitmap bmp = new Bitmap(100, 100); 
    Graphics g = Graphics.FromImage(bmp); 
    g.DrawImage(Properties.Resources.Foo); 
    Bitmap bar = Properties.Resources.Bar; 
    bar.MakeTransparent(bar.GetPixel(0, 0)); 
    g.DrawImage(bar); 

Tant que les images sont transparentes (que vous pouvez faire à l'exécution des appels à Bitmap.MakeTransparent()), vous pouvez couche choses avec de multiples appels à DrawImage sans les « détruire » le bitmap.

0

Cela semble à peu près juste. J'ai un ensemble d'objets x2 Texture2D, chacun d'entre eux stocke son chemin d'accès au fichier. En utilisant Image.FromFile() j'utilise ce chemin pour créer des objets Image puis j'ai besoin de dessiner des sections de l'image, en utilisant Graphics.DrawImage() et un Rectangle décrivant la section, à un objet Graphics. De là, je peux simplement faire plusieurs appels g.DrawImage() dans une commande Back to Front. Puisque Texture2D, et Image d'ailleurs, peuvent gérer la transparence et que mes sources tex sont toutes au format PNG, je suppose que je peux utiliser la classe Image au lieu de la classe Bitmap et enregistrer l'appel MakeTransparent, correct?