devxlogo

Setting a pixel color

Setting a pixel color

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:

Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, _    ByVal y As Long) As LongDeclare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, _    ByVal y As Long, ByVal crColor As Long) As LongPrivate Sub Form_Click()    Dim x As Long, y As Long, h As Long    h = Me.hdc        ' assumes that form's ScaleMode    ' is set to 3 - Pixels    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    NextEnd Sub

See also  Why ChatGPT Is So Important Today
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist