Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Pixel -> Farbe auslesen... (https://www.delphipraxis.net/603-pixel-farbe-auslesen.html)

NewbieOnBoard 12. Aug 2002 16:56


Pixel -> Farbe auslesen...
 
Hallo!!! :D

Mein Problem: Wie kann lese ich die Farbe von irgendeinem Pixel auf dem Bildschirm aus? Ich meine jetzt ganz konkret irgendeinen Pixel, egal ob der zum Backgroundpicture gehört oder zu einem (externen) Programm-Interface...ich will am Ende einfach nur ne x/y Kordinate des Bildschirms eingeben müssen und dann den Farbwert auslesen...ist das möglich?


Thx im voraus!!

Newbie On Board...

Tpercon 12. Aug 2002 18:11

Canvas.Pixels[x,y] liefert einen TColor Farbwert!

Daniel 12. Aug 2002 18:21

... genau. Und vorher noch schnell einen Screenshot machen. Wie das geht hat sakura in der Code-Bibliothek erklärt: http://www.delphipraxis.net/viewtopic.php?t=151. Nach diesem Beispiel hast Du den Screenshot dann einem Objekt vom Typ TBitmap, welches Dir o.g. Canvas zu Verfügung stellt.


Grüße,
Daniel

Sebastian Nintemann 12. Aug 2002 18:25

Da du das ja vom ganzen Bildschirm haben willst solltest du das mittels dem Device Context des Desktops machen.

Code:
[b]var[/b]
  dc: hDC;
[b]begin[/b]
  dc := GetDC(0); [color=#000080][i]//0 für Desktop (ganzer Bildschrim)[/i][/color]
  Color := GetPixel(dc,x,y) [color=#000080][i]//x und y sind Variablen für die Koordinaten[/i][/color]
[b]end[/b];
Gruß Sebastian

NewbieOnBoard 12. Aug 2002 18:28

Das funktioniert aber nur im Fenster meines Delpi-Programmes...wenn ich den Pixel 10,10 haben will, dann geht er von der Ecke des Programmfensters aus und nicht von der Ecke des Bildschirms...das was ich will soll sozusagen ne Universalpipette für den Desktop/Explorer werden...wie bei nen Grafikprogramm, nur halt überall...

Trotzdem danke...

NewbieOnBoard 12. Aug 2002 18:37

Danke an alle!!!

Jetzt funzt es! :party:

jbg 12. Aug 2002 18:49

Zitat:

Code:
  dc := GetDC(0);
  Color := GetPixel(dc,x,y);

Und die System-Resourcen gehen in den Keller, wobei der Speicherverbrauch ansteigt.
Code:
  dc := GetDC(0);
  Color := GetPixel(dc,x,y);
  ReleaseDC(0, dc); [color=#000080][i]// <-- ist wichtig[/i][/color]

Sebastian Nintemann 12. Aug 2002 19:15

Stimmt :oops:

Gruß Sebastian

Frankle 13. Aug 2002 20:29

Tipp
 
Hi!
Aber Achtung: Wenn du das Bild gestretched hast, hautz net mea hin :nerd:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz