In VB6 heb ik een applicatie die heel het scherm scant naar de kleur van elke pixel.
Deze functie gebruik ik daar voor. Die gooi ik in twee lussen in elkaar, de een doet Y de ander X en dan maar heel het scherm doorlopen.
Ik heb er geen stopwatch bijgehouden maar over 800x600 doet hij vreselijk lang. Sommige pixels wil ik bewerken als die een bepaalde kleur hebben. Is er een die-hard die hier een oplossing voor heeft, om het process een beetje te versnellen?
Hij scant het actieve venster trouwens...
Hmm, het getwindow stuk eruit gaat al een stuk sneller
maar nog niet snel genoeg natuurlijk.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Public WindowDC As Long
Public Sub getRGB(X As Long, Y As Long)
Dim Ret As Long
Dim WindowHandle As Long
Dim Punt As POINTAPI
Dim Rechthoekje As RECT
Dim VrolijkKleurtje As Long
Call GetCursorPos(Punt)
WindowHandle = WindowFromPoint(Punt.X, Punt.Y)
WindowDC = GetDC(WindowHandle)
Call GetWindowRect(WindowHandle, Rechthoekje)
VrolijkKleurtje = GetPixel(WindowDC, X, Y)
Rood = VrolijkKleurtje And &HFF
Groen = (VrolijkKleurtje And &HFF00&) \ &H100&
Blauw = (VrolijkKleurtje And &HFF0000) \ &H10000
End Sub |
Deze functie gebruik ik daar voor. Die gooi ik in twee lussen in elkaar, de een doet Y de ander X en dan maar heel het scherm doorlopen.
Ik heb er geen stopwatch bijgehouden maar over 800x600 doet hij vreselijk lang. Sommige pixels wil ik bewerken als die een bepaalde kleur hebben. Is er een die-hard die hier een oplossing voor heeft, om het process een beetje te versnellen?
Hij scant het actieve venster trouwens...
Hmm, het getwindow stuk eruit gaat al een stuk sneller
[ Voor 10% gewijzigd door Fles op 21-05-2003 23:43 ]