Средний цвет хорошо и быстро определяется на картинке где-то при 75% одинакового цвета.
Код:
Function GetMaxColorBmp(B: TBitmap): TColor;
Type
PRGBArray = ^TRGBArray;
TRGBArray = Array[0..65535] of TRGBTriple;
Var
Line: PRGBArray;
i, j, Pix: Integer;
_r, _g, _b: Extended;
begin
_r:= 0; _g:= 0; _b:= 0;
Result:= clWhite;
B.PixelFormat:= pf24bit;
For j:= 0 To B.Height - 1 Do
begin
Line:= B.ScanLine[j];
For i:= 0 To B.Width - 1 Do
begin
_r:= _r + Line[i].rgbtRed;
_g:= _g + Line[i].rgbtGreen;
_b:= _b + Line[i].rgbtBlue;
end;
end;
Pix:= B.Width*B.Height;
Result:= RGB(Round(_r/Pix), Round(_g/Pix), Round(_b/Pix));
end;