14.03.2011, 18:00
|
Продвинутый
|
|
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
|
|
как-то вот так примитивно:
Код:
function Bright(Color: TColor; BrightPercent: Byte): TColor;
var
r, g, b: Byte;
begin
Color := ColorToRGB(Color);
r := GetRValue(Color);
g := GetGValue(Color);
b := GetBValue(Color);
r := r + muldiv(255 - r, BrightPercent, 100);
g := g + muldiv(255 - g, BrightPercent, 100);
b := b + muldiv(255 - b, BrightPercent, 100);
Result := RGB(r, g, b);
end;
procedure BrightBmp(Bmp: TBitmap; BrightPercent: byte);
var
x,y: integer;
col: TColor;
begin
for y:=0 to Bmp.Height do
for x:=0 to Bmp.Width do
begin
col := Bmp.Canvas.Pixels[x,y];
Bmp.Canvas.Pixels[x,y] := Bright(col,BrightPercent);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
begin
StringGrid1.Enabled := False;
Bmp := TBitmap.Create;
Bmp.Width := StringGrid1.Width;
Bmp.Height := StringGrid1.Height;
Bmp.Canvas.CopyRect(Bmp.Canvas.ClipRect,StringGrid1.Canvas,StringGrid1.Canvas.ClipRect);
BrightBmp(Bmp,50);
StringGrid1.Canvas.CopyRect(StringGrid1.Canvas.ClipRect,Bmp.Canvas,Bmp.Canvas.ClipRect);
Bmp.Free;
end;
для возвращения исходного состояния:
Код:
StringGrid1.Enabled := True;
StringGrid1.Repaint;
|