Avatar billede kipolaks Nybegynder
23. maj 2008 - 17:28 Der er 5 kommentarer

læse farve på pixel tilfældigt sted på skærmen

Hej !

nogen der har et eksempel på hvordan jeg læser farven på en pixel et tilfældigt sted på skærmen ?
Avatar billede kipolaks Nybegynder
23. maj 2008 - 17:29 #1
i det program jeg er ved at strikke sammen er det jo slevfølgelig ikke tilfældigt hvor jeg læser fra men funktionen skal kunne læse over det hele..
Avatar billede w13 Novice
23. maj 2008 - 17:33 #2
Til det skal du bruge funktionen GetPixelColor.
Avatar billede w13 Novice
23. maj 2008 - 17:34 #3
F.eks.:

PixelColor:=IntToStr(GetPixelColor(iLeftPX,iTopPX));
Avatar billede borrisholt Novice
15. juli 2008 - 09:39 #4
GetPixelColor har jeg godt nok aldrig hørt om .. Men GetPixel der imod ... Den retunerer farven på en bestemt pixel, i en given Device kontekst.

Du fortæller ikke såmeget om hvad du skal bruge det til, så her er to forskellige funktioner ...

function GetScreenPixelRGB(X, Y: Integer): TRGBTriple;
var
  ColorRef: TColorRef;
begin
  ColorRef := GetPixel(GetDC(0), X, Y);
  Result.rgbtRed := Byte(ColorRef);
  Result.rgbtGreen := Byte(ColorRef shr 8);
  Result.rgbtBlue := Byte(ColorRef shr 16);
end;

function GetScreenPixel(X, Y: Integer): TColor;
begin
  Result := TColor(GetPixel(GetDC(0), X, Y));
end;


og kalde den fx. fra en timer :

procedure TForm15.Timer1Timer(Sender: TObject);
var
  CursorPos : TPoint;
begin
  GetCursorPos(CursorPos);
  Caption := ColorToString( GetScreenPixel(CursorPos.X, CursorPos.Y));
end;

Jens B
Avatar billede kipolaks Nybegynder
16. december 2008 - 17:05 #5
lad os få lukket spørgsmålet.. borrisholt, smider du et svar ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester