Color of a screen pixel: Difference between revisions

No edit summary
Line 97:
<lang lisp>(defn get-color-at [x y]
(.getPixelColor (java.awt.Robot.) x y))</lang>
 
 
=={{header|Delphi}}==
 
<lang Delphi>
program ScreenPixel;
 
{$APPTYPE CONSOLE}
 
uses
Windows,
SysUtils,
Graphics;
 
 
// Use this function in a GUI application to return the color
function GetPixelColourAsColor(const PixelCoords: TPoint): TColor;
var
dc: HDC;
begin
// Get Device Context of windows desktop
dc := GetDC(0);
// Read the color of the pixel at the given coordinates
Result := GetPixel(dc,PixelCoords.X,PixelCoords.Y);
end;
 
// Use this function to get a string representation of the current colour
function GetPixelColourAsString(const PixelCoords: TPoint): string;
var
r,g,b: Byte;
col: TColor;
begin
col := GetPixelColourAsColor(PixelCoords);
 
// Convert the Delphi TColor value to it's RGB components
r := col and $FF;
g := (col shr 8) and $FF;
b := (col shr 16) and $FF;
 
// Format the result
Result := 'R('+IntToStr(r)+') G('+IntToStr(g)+') G('+IntToStr(b)+')';
 
{
Alternatively, format the result as follows to get a
string representation of the Delphi TColor value
 
Result := ColorToString(GetPixel(dc,curP.X,curP.Y));
}
 
end;
 
var
s: string;
P: TPoint;
begin
s := '';
 
Writeln('Move mouse over a pixel. Hit return to get colour of selected pixel.');
 
repeat
Readln(s);
if s = '' then
begin
GetCursorPos(P);
Writeln('Colour at cursor position X:'+
IntToStr(P.X)+' Y:'+
IntToStr(P.Y) +' = '+
GetPixelColourAsString(P)
);
Writeln('');
Writeln('Move mouse and hit enter again.');
end;
until
SameText(s,'quit');
 
end.
</lang>
 
Example output:
 
<pre>
Move mouse over a pixel. Hit return to get colour of selected pixel.
 
Colour at cursor position X:429 Y:161 = R(0) G(0) B(0)
 
Move mouse and hit enter again.
 
Colour at cursor position X:942 Y:358 = R(182) G(206) B(231)
 
Move mouse and hit enter again.
 
Colour at cursor position X:704 Y:103 = R(240) G(240) B(240)
 
Move mouse and hit enter again.
 
Colour at cursor position X:2756 Y:59 = R(250) G(196) B(182)
</pre>
 
=={{header|F_Sharp|F#}}==