AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi auslesen der farbe eines pixels auf dem monitor
Thema durchsuchen
Ansicht
Themen-Optionen

auslesen der farbe eines pixels auf dem monitor

Ein Thema von BarcB · begonnen am 10. Sep 2006 · letzter Beitrag vom 10. Sep 2006
Antwort Antwort
BarcB

Registriert seit: 27. Feb 2006
29 Beiträge
 
#1

auslesen der farbe eines pixels auf dem monitor

  Alt 10. Sep 2006, 15:18
hi, ist es möglich/wie ist es möglich bei einem bestimmten pixel auf dem display außerhalb der form die farbe auszulesen?

also je nach auflösung bei mir z.b. 1280x1024 pixel
will ich die farbe von pixel (100/150) auslesen, wobei 100 x-wert und 150-y wert ist.

wie bekommt man in delphi dann den farbwert also wie wird er ausgegeben als hexcode?


danke!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: auslesen der farbe eines pixels auf dem monitor

  Alt 10. Sep 2006, 15:23
Einfach ein Canvas an den Desktop binden.

Delphi-Quellcode:
function GetColorAt(const X, Y: Integer): TColor;
var canvas: TCanvas;
begin
  canvas:=TCanvas.Create;
  try
    canvas.Handle:=GetWindowDC(GetDesktopWindow);
    Result:=canvas.pixels[X, Y];
  finally
    canvas.Free;
  end;
end;
(ungetestet)
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: auslesen der farbe eines pixels auf dem monitor

  Alt 10. Sep 2006, 17:14
Das hatten wir schon öfters... Hier im Forum suchenPixelfarbe

Delphi-Quellcode:
function DesktopColor(const X, Y: Integer): TColor;
var
  c: TCanvas;
begin
  c := TCanvas.Create;
  try
    c.Handle := GetWindowDC(GetDesktopWindow);
    Result := GetPixel(c.Handle, X, Y);
  finally
    c.Free;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Pos: TPoint;
begin
GetCursorPos(Pos);
  Panel1.Color := DesktopColor(Pos.X, Pos.Y);
end;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: auslesen der farbe eines pixels auf dem monitor

  Alt 10. Sep 2006, 17:49
@Meflin: Bei deinem Code hat die TCanvas Instanz keinen Sinn. Sie wird nur zum freigeben des DC Handles genutzt. Da könnte man aber gleich alles in WinAPI machen und ReleaseDC() selber aufrufen. Bei 3_of_8's Code wird die Pixel's Eigenschaft genutzt des Canvas.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: auslesen der farbe eines pixels auf dem monitor

  Alt 10. Sep 2006, 17:53
Zitat von Muetze1:
@Meflin: Bei deinem Code hat die TCanvas Instanz keinen Sinn. Sie wird nur zum freigeben des DC Handles genutzt. Da könnte man aber gleich alles in WinAPI machen und ReleaseDC() selber aufrufen. Bei 3_of_8's Code wird die Pixel's Eigenschaft genutzt des Canvas.
Ist nicht mein Code, sondern der erste (von vielen), den die Suche ausspuckt Will mich ja hier nicht mit fremden Federn "schmücken"...

  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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