Difference between revisions of "FindColorTol"

From SCAR Divi Manual
Jump to: navigation, search
m (Freddy moved page FindColorTolerance to FindColorTol)
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
==Definition==
 
==Definition==
 
<source lang="scar" lines="false">
 
<source lang="scar" lines="false">
function FindColorTolerance(var x, y: Integer; Color, xs, ys, xe, ye, Tol: Integer): Boolean;
+
function FindColorTol(out X, Y: Integer; const Color, XS, YS, XE, YE, Tol: Integer): Boolean;
 
</source>
 
</source>
  
 
==Availability==
 
==Availability==
SCAR Divi 3.00 > Current
+
SCAR Divi 3.35 > Current
 +
 
 +
===Aliases===
 +
*FindColorTolerance (SCAR Divi 3.00 > 3.34)
  
 
==Description==
 
==Description==
This function searches for a given color specified by '''Color''' within a [[tolerance]] range specified by '''Tol''' inside of a given search area specified by '''XS''', '''YS''', '''XE''', '''YE''' using a scan-line pattern. The search area is given as a set of upper-left ('''XS''', '''YS''') and lower-right ('''XE''', '''YE''') coordinates which are specified relative to the selected client window. If the given search area is invalid ('''XS''' > '''XE''' or '''YS''' > '''YE'''), an exception is thrown.
+
This function searches for a given color specified by '''Color''' within a [[tolerance]] range specified by '''Tol''' using a scan-line pattern. The search area is given as a set of upper-left ('''XS''', '''YS''') and lower-right ('''XE''', '''YE''') coordinates which are specified relative to the selected client window. If the given search area is invalid ('''XS''' > '''XE''' or '''YS''' > '''YE'''), an exception is thrown.
  
 
The function returns [[false]] if the color was not found, if it was it returns [[true]] and the coordinates of the found color in ('''X''', '''Y'''). The search will stop after the first instance of the color was found.
 
The function returns [[false]] if the color was not found, if it was it returns [[true]] and the coordinates of the found color in ('''X''', '''Y'''). The search will stop after the first instance of the color was found.
Line 19: Line 22:
 
<source lang="scar">
 
<source lang="scar">
 
var
 
var
   w, h: Integer;
+
   W, H: Integer;
   x, y: Integer;
+
   X, Y: Integer;
 +
 
begin
 
begin
   GetClientDimensions(w, h);
+
   GetBoxSize(GetClient.ImageArea, W, H);
   if FindColorTolerance(x, y, 4, 0, 0, w - 1, h - 1, 5) then
+
   if FindColorTol(X, Y, 0, 0, 0, W - 1, H - 1, 5) then
     WriteLn('Found color at ' + IntToStr(x) + ', ' + IntToStr(y));
+
     WriteLn('Found color at ' + IntToStr(X) + ', ' + IntToStr(Y));
 
end.
 
end.
 
</source>
 
</source>
Line 30: Line 34:
 
==See Also==
 
==See Also==
 
*[[FindColor]]
 
*[[FindColor]]
*[[FindColorsTolerance]]
+
*[[FindColorTolEx]]
*[[FindColorSpiralTolerance]]
+
*[[FindColorSpiralTol]]
*[[CountColorTolerance]]
+
*[[CountColorTol]]
 +
*[[FindColorsTol]]
 
*[[GetColor]]
 
*[[GetColor]]
  

Latest revision as of 20:22, 7 August 2012

FindColorTolerance.gif

Definition

function FindColorTol(out X, Y: Integer; const Color, XS, YS, XE, YE, Tol: Integer): Boolean;

Availability

SCAR Divi 3.35 > Current

Aliases

  • FindColorTolerance (SCAR Divi 3.00 > 3.34)

Description

This function searches for a given color specified by Color within a tolerance range specified by Tol using a scan-line pattern. The search area is given as a set of upper-left (XS, YS) and lower-right (XE, YE) coordinates which are specified relative to the selected client window. If the given search area is invalid (XS > XE or YS > YE), an exception is thrown.

The function returns false if the color was not found, if it was it returns true and the coordinates of the found color in (X, Y). The search will stop after the first instance of the color was found.

The active tolerance algorithm can be changed using the ColorToleranceSpeed function.

Example

var
  W, H: Integer;
  X, Y: Integer;
 
begin
  GetBoxSize(GetClient.ImageArea, W, H);
  if FindColorTol(X, Y, 0, 0, 0, W - 1, H - 1, 5) then
    WriteLn('Found color at ' + IntToStr(X) + ', ' + IntToStr(Y));
end.

See Also