|
|
|
The PSet method is much slower than it should actually be, and in most cases you will find it convenient to substitute it with direct calls to the SetPixel API functions. This function is about twelve times faster than the VB's method, at least when you can set the form's ScaleMode to Pixels, for more or less the same reasons for which the GetPixel API function is faster than the Point method. The next routine changes all red pixels to yellow, and is about 2.5 times faster than an equivalent routine built on VB's equivalent methods: |
Click here to copy the following block | Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, _ ByVal y As Long) As Long Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, _ ByVal y As Long, ByVal crColor As Long) As Long
Private Sub Form_Click() Dim x As Long, y As Long, h As Long h = Me.hdc For y = 0 To ScaleHeight - 1 For x = 0 To ScaleWidth - 1 If GetPixel(h, x, y) = vbRed Then SetPixel h, x, y, vbYellow End If Next Next End Sub |
|
|
|
Submitted By :
Nayan Patel
(Member Since : 5/26/2004 12:23:06 PM)
|
|
|
Job Description :
He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting. |
View all (893) submissions by this author
(Birth Date : 7/14/1981 ) |
|
|