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 15: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 17:11

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

Daniel 12. Aug 2002 17: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 17: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 17: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 17:37

Danke an alle!!!

Jetzt funzt es! :party:

jbg 12. Aug 2002 17: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 18:15

Stimmt :oops:

Gruß Sebastian

Frankle 13. Aug 2002 19:29

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr.

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