Trong handler sơn điều khiển người dùng của tôi, tôi lặp trên một tập hợp các đối tượng Bitmap được xác định trước và lôi kéo họ vào vùng client thusly:Làm cách nào để tăng hiệu suất trên DrawImage của GDI (Unscaled)?
C# phiên bản:
private void Control_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
foreach (BitmapObj bmpObj in _bitmapObjCollection) {
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location);
}
}
phiên bản 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
Mã hoạt động tốt nhưng bắt đầu giảm xuống khi có thêm một tá đối tượng được thêm vào bộ sưu tập. Câu hỏi của tôi là: Có cách nào để tăng tốc độ này không? Nó sẽ có thể sử dụng chức năng bitblt Win32 để thay thế DrawImageUnscaled? Và nếu thế thì sao?
Cảm ơn!
Lưu ý: Googling cho năng bảo mật bằng của bitblt đã chỉ mang lại cho tôi mẫu nắp màn hình cho đến nay ...
ping lại @ http://stackoverflow.com/questions/264720/gdi-graphicsdrawimage-really-slow – dankyy1