farbą obsługi moją kontrolą autora I iteracyjne nad zbiór predefiniowanych obiektów Bitmap i zwrócić je do obszaru roboczego wygląda następująco:Jak zwiększyć wydajność w stosunku do DrawImage GDI (nieskalowane)?
C# wersja:
private void Control_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
foreach (BitmapObj bmpObj in _bitmapObjCollection) {
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location);
}
}
wersja VB.NET:
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
Kod działa poprawnie, ale zaczyna się trząść, gdy do kolekcji dołącza się kilkanaście obiektów. Moje pytanie brzmi: czy istnieje sposób na przyspieszenie tego? Czy byłoby możliwe użycie funkcji Win32 bitblt do zastąpienia DrawImageUnscaled? A jeśli tak, to w jaki sposób?
Dzięki!
Uwaga: Googling dla useage z BitBlt przyniosła mi tylko próbki mocujące ekran tak daleko ...
ping back @ http://stackoverflow.com/questions/264720/gdi-graphicsdrawimage-really-slow – dankyy1