In meinem Lack Handler Benutzerkontrolle iterieren ich über eine Sammlung von vordefinierten Bitmap-Objekte und sie an den Client-Bereich zeichnen thusly:Wie kann die Leistung gegenüber GDI's DrawImage (unscaled) erhöht werden?
C# Version:
private void Control_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
foreach (BitmapObj bmpObj in _bitmapObjCollection) {
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location);
}
}
VB.NET Version:
Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
Dim g As Graphics = e.Graphics
For Each bmpObj As BitmapObj In _bitmapObjCollection
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location)
Next
End Sub
Der Code funktioniert gut, aber beginnt zu bombardieren, wenn ein Dutzend Objekte zur Sammlung hinzugefügt werden. Meine Frage ist: Gibt es eine Möglichkeit, dies zu beschleunigen? Wäre es möglich, die Win32-Bitblt-Funktion zu verwenden, um DrawImageUnscaled zu ersetzen? Und wenn ja wie?
Danke!
Hinweis: für useage von BitBlt Googeln hat ergab mir nur Abschirmkappe Proben so weit ...
ping zurück @ http://stackoverflow.com/questions/264720/gdi-graphicsdrawimage-really-slow – dankyy1