|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
[C++/C#/VB.Net/Java] Accedere direttamente alla memoria grafica
Dal momento che una googlata non mi ha restituito nulla di preciso (forse è il rincoglionimento del lunedì...), mi chiedevo se qualcuno sa come risolvere questo problema: devo scrivere un programmino (il linguaggio è indifferente) che "legga" i valori dei colori dello schermo. Ovvero, mi serve l'informazione: il pixel di coordinate (x,y) - coordinate assolute dello schermo, non della singola finestra - ha colore 0xRRGGBB (supponendo di avere mpostato la profondità di colore a 24 bit). Chiaramente non chiedo il programma intero, ma solo il core della chiamata ed un'indicazione sulle eventuali librerie da includere. Dimenticavo: il S.O è un normale windows xp (ah, beati tempi della 0xA000)
__________________
Il sole è giallo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Beh, non so se sia aderente alla richiesta del titolo : "Accedere direttamente alla memoria grafica", ma in pratica ciò che chiedi è un semplice ScreenCapture. In VB.NET è semplicissimo :
Codice:
Dim rSchermo As Rectangle = Screen.PrimaryScreen.Bounds
Dim BMP As New Bitmap(rSchermo.Width, rSchermo.Height)
Dim G As Graphics = Graphics.FromImage(BMP)
G.CopyFromScreen(Point.Empty, Point.Empty, rSchermo.Size)
'Commentare la prossima riga se non si desidera il rendering del cursore
Cursor.Current.Draw(G, New Rectangle(MousePosition, Cursor.Current.Size))
'Ottieni il colore del pixel al punto (x,y) = (100,200)
Dim C As Color = BMP.GetPixel(100, 200)
MsgBox(C.ToString())
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
MarcoGG, il rendering manuale del cursore é una pezza che io eviterei del tutto: la tua soluzione é imprecisa perché non é detto che l'hot spot del cursore presente al momento dello screenshot sia esattamente il primo pixel in alto a sinistra del cursore.
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Ragazzi, se foste così bravi e pignoli nel suggerire soluzioni alternative quanto lo siete nel criticare quelle altrui, questo Forum sarebbe un'autentica code-bank. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:04.



















