Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iscitavanje piksela sa ekrana

[es] :: Visual Basic 6 :: Iscitavanje piksela sa ekrana

[ Pregleda: 2406 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.yunord.net.

ICQ: 66444502


+47 Profil

icon Iscitavanje piksela sa ekrana15.11.2003. u 13:09 - pre 226 meseci
Da li neko ima ideju kako mogu da iscitavam vrednosti odredjenih piksela (7 - 10 komada) sa vidljivog dela ekrana, znaci sve sto se trenutno prikazuje (bez obzira na VB aplikaciju). Mislim da bih trebao da pristupim grafickoj memoriji ali ne znam kako se to radi u windows-u. Treba mi malo veca brzina neki 20 - 30 puta u sekundi.
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.yunord.net.

ICQ: 66444502


+47 Profil

icon Re: Iscitavanje piksela sa ekrana15.11.2003. u 16:53 - pre 226 meseci
Dobro OK ako je problem suvise komplikovan, evo nesto jednostavnije varijante:
Kako da iscitam vrednosti piksela (R,G,B) sa moje forme (sa raznim komponentama button-ima, Slikama...)
 
Odgovor na temu

gio1000
Italia

Član broj: 1159
Poruke: 122
*.98-62.inwind.it



Profil

icon Re: Iscitavanje piksela sa ekrana17.11.2003. u 04:11 - pre 226 meseci
Probaj sa Timer-om.
Imas Form i kad ti trebaju odredjeni pixel napravi:
Form Maximized, potom ga napravi transparentnim i odredi vrijednost
odredjenih pixela.
U modul stavi:
Code:

Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_TRANSPARENT = &H20&
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_SHOWME = SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_NOTOPMOST = -2

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


U Form:

Code:

Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal nXPos As Long, ByVal nYPos As Long) As Long
Private Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINT_TYPE) As Long
Private Type POINT_TYPE
  X As Long
  Y As Long
End Type
Dim RGBVal As Long
Dim I As Long

Private Sub Timer1_Timer()
'Nakon sto je Form pokrio citav ekran napravi ga nevidljivim
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME
'Potom procitaj vrijednost pixela ( recimo x = 534, y = 238 )
Call CitajPixel
Timer1.Enabled = False
End Sub
Private Sub CitajPixel()
   RGBVal = GetPixel(Form1.hdc, 534, 238)
   'Unesi negdje vrijednost pixela ( Pixel = RGBVal )
End Sub

 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1641
*.yunord.net.

ICQ: 66444502


+47 Profil

icon Re: Iscitavanje piksela sa ekrana17.11.2003. u 11:29 - pre 226 meseci
E super hvala ti, mada jos nisam isprobao nesto mi ne radi VB normalno mixovo sam dve verzije...
Nego siguran sam da radi, a iako ne ,svakako hvala na ideji...
 
Odgovor na temu

[es] :: Visual Basic 6 :: Iscitavanje piksela sa ekrana

[ Pregleda: 2406 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.