ImageEn, unit imageenproc |
|
TImageEnProc.GuessChromaKeyColor
Declaration
function GuessChromaKeyColor() : TRGB; overload;
function GuessChromaKeyColor(out Tolerance: Double) : TRGB; overload;
Description
Analyzes a ChromaKey image to guess its key color (by examining nine areas of the image and using the one with the least hue variance). If a selection is active it only analyzes the selection.
The second overload will return a level of Tolerance that would remove all the background color from the selection. If this is used without a selection it is likely to return a level that is too low (a default tolerance of 0.21 is usually better).
A ChromaKey image contains a solid color block that is removed so that it can be applied to a background. E.g. in the following image the key color is neon green (R=0/G=254/B=0).
Note: If the image
PixelFormat is not ie24RGB, it will be converted
| Demos\ImageEditing\ChromaKey\ChromaKey.dpr |
| Demos\ImageEditing\EveryMethod\EveryMethod.dpr |
// Get the key color of the current layer
ImageEnView1.LayersCurrent := 1;
KeyColor := ImageEnView1.Proc.GuessChromaKeyColor();
clsKeyColor.Color := TRGB2TColor( KeyColor );
// Guess the key color and tolerance of the area selected by the user
procedure TMainForm.ImageEnView1SelectionChange(Sender: TObject);
var
Tolerance: Double;
KeyColor : TRGB;
begin
if ImageEnView1.Selected then
begin
KeyColor := ImageEnView1.Proc.GuessChromaKeyColor( Tolerance );
clsKeyColor.Color := TRGB2TColor( KeyColor );
trkTolerance.Position := Trunc( Tolerance * 1000 );
ApplyChromaKey();
end;
end;
See Also
◼RemoveChromaKey◼CreateRGB◼TRGB2TColor◼TColor2TRGB