J'ai 3 points bitmap.Quel est le moyen le plus rapide de dessiner une image sur une autre image?
Bitmap* totalCanvas = new Bitmap(400, 300, PixelFormat32bppARGB); // final canvas
Bitmap* bottomLayer = new Bitmap(400, 300,PixelFormat32bppARGB); // background
Bitmap* topLayer = new Bitmap(XXX); // always changed.
je tirerai sur fond complexe bottomLayer. Je ne veux pas redessiner l'arrière-plan complexe sur totalCanvas encore et encore, donc je l'ai stocké dans bottomLayer.
TopLayer a été modifié fréquemment. Je veux dessiner bottomLayer to totalCanvas. Quel est le moyen le plus rapide?
Graphics canvas(totalCanvas);
canvas.DrawImage(bottomLayer, 0, 0); step1
canvas.DrawImage(topLayer ,XXXXX); step2
Je veux que l'étape 1 soit aussi rapide que possible. Quelqu'un peut-il me donner un échantillon? Merci beaucoup!
Merci pour la réponse de unwind. Je vous écris le code suivant:
Graphics canvas(totalCanvas);
for (int i = 0; i < 100; ++i)
{
canvas.DrawImage(bottomLayer, 0,0);
}
cette partie prend 968ms ... il est trop lent ...
sont des dimensions de bottoLayer toujours les mêmes que les dimensions totales de la toile? Si oui, pourquoi créer deux bitmaps? – user88637
Merci, j'ai ajouté la raison dans la question. – user25749